Implement/match LegoAct2::BadEnding

This commit is contained in:
Christian Semmler 2024-12-13 09:13:17 -07:00
parent 32392a8e55
commit b549c0cf8f
3 changed files with 23 additions and 8 deletions

View File

@ -40,9 +40,12 @@ class LegoAct2State : public LegoState {
// SYNTHETIC: LEGO1 0x1000e040 // SYNTHETIC: LEGO1 0x1000e040
// LegoAct2State::`scalar deleting destructor' // LegoAct2State::`scalar deleting destructor'
// FUNCTION: BETA10 0x100151b0
void SetUnknown0x08(undefined4 p_unk0x08) { m_unk0x08 = p_unk0x08; }
undefined4 GetUnknown0x08() { return m_unk0x08; } undefined4 GetUnknown0x08() { return m_unk0x08; }
// TODO: Most likely getters/setters are not used according to BETA. // TODO: Most likely getters/setters are not used according to BETA. (?)
undefined4 m_unk0x08; // 0x08 undefined4 m_unk0x08; // 0x08
MxBool m_enabled; // 0x0c MxBool m_enabled; // 0x0c
@ -70,7 +73,7 @@ class LegoAct2 : public LegoWorld {
MxResult FUN_100516b0(); MxResult FUN_100516b0();
void FUN_100517b0(); void FUN_100517b0();
undefined4 FUN_10051f20(); MxResult BadEnding();
MxResult FUN_10052560( MxResult FUN_10052560(
Act2mainScript::Script p_objectId, Act2mainScript::Script p_objectId,
MxBool p_param2, MxBool p_param2,

View File

@ -527,7 +527,7 @@ undefined4 Act2Actor::FUN_10019700(MxFloat p_param)
m_unk0x1e = 1; m_unk0x1e = 1;
if (m_unk0x1d == 8) { if (m_unk0x1d == 8) {
((LegoAct2*) CurrentWorld())->FUN_10051f20(); ((LegoAct2*) CurrentWorld())->BadEnding();
} }
return 1; return 1;

View File

@ -928,12 +928,24 @@ void LegoAct2::SpawnBricks()
m_nextBrick++; m_nextBrick++;
} }
// STUB: LEGO1 0x10051f20 // FUNCTION: LEGO1 0x10051f20
// STUB: BETA10 0x10013f48 // FUNCTION: BETA10 0x10013f48
undefined4 LegoAct2::FUN_10051f20() MxResult LegoAct2::BadEnding()
{ {
// TODO for (MxS32 i = 0; i < (MxS32) sizeOfArray(m_bricks); i++) {
return 0; m_bricks[i].Remove();
}
LegoPathActor* actor = m_unk0x1138;
actor->SetState(LegoPathActor::c_bit3);
m_gameState->SetUnknown0x08(104);
m_destLocation = LegoGameState::e_infomain;
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
MxTrace("Bad End of Act2\n");
m_unk0x10c4 = 14;
return SUCCESS;
} }
// FUNCTION: LEGO1 0x10051fa0 // FUNCTION: LEGO1 0x10051fa0