Implement/match LegoAct2::HandleTransitionEnd (#1176)

This commit is contained in:
Christian Semmler 2024-11-29 13:24:14 -07:00 committed by GitHub
parent a17b3168e9
commit c9a2a7203b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 25 additions and 20 deletions

View file

@ -2,6 +2,7 @@
#define LEGOACT2_H #define LEGOACT2_H
#include "act2brick.h" #include "act2brick.h"
#include "legogamestate.h"
#include "legostate.h" #include "legostate.h"
#include "legoworld.h" #include "legoworld.h"
@ -66,7 +67,7 @@ class LegoAct2 : public LegoWorld {
void Enable(MxBool p_enable) override; // vtable+0x68 void Enable(MxBool p_enable) override; // vtable+0x68
void SetUnknown0x1138(Act2Actor* p_unk0x1138) { m_unk0x1138 = p_unk0x1138; } void SetUnknown0x1138(Act2Actor* p_unk0x1138) { m_unk0x1138 = p_unk0x1138; }
void SetUnknown0x1150(undefined4 p_unk0x1150) { m_unk0x1150 = p_unk0x1150; } void SetDestLocation(LegoGameState::Area p_destLocation) { m_destLocation = p_destLocation; }
undefined4 FUN_10052560( undefined4 FUN_10052560(
MxS32 p_param1, MxS32 p_param1,
@ -98,19 +99,19 @@ class LegoAct2 : public LegoWorld {
// variable name verified by BETA10 0x10014633 // variable name verified by BETA10 0x10014633
char* m_siFile; // 0x10d4 char* m_siFile; // 0x10d4
LegoROI* m_unk0x10d8; // 0x10d8 LegoROI* m_unk0x10d8; // 0x10d8
MxMatrix m_unk0x10dc; // 0x10dc MxMatrix m_unk0x10dc; // 0x10dc
undefined4 m_unk0x1124; // 0x1124 undefined4 m_unk0x1124; // 0x1124
LegoROI* m_ambulance; // 0x1128 LegoROI* m_ambulance; // 0x1128
undefined4 m_unk0x112c; // 0x112c undefined4 m_unk0x112c; // 0x112c
undefined4 m_unk0x1130; // 0x1130 undefined4 m_unk0x1130; // 0x1130
undefined4 m_unk0x1134; // 0x1134 undefined4 m_unk0x1134; // 0x1134
Act2Actor* m_unk0x1138; // 0x1138 Act2Actor* m_unk0x1138; // 0x1138
undefined m_unk0x113c; // 0x113c undefined m_unk0x113c; // 0x113c
undefined4 m_unk0x1140; // 0x1140 undefined4 m_unk0x1140; // 0x1140
undefined4 m_unk0x1144; // 0x1144 undefined4 m_unk0x1144; // 0x1144
undefined m_unk0x1148[0x08]; // 0x1148 undefined m_unk0x1148[0x08]; // 0x1148
undefined4 m_unk0x1150; // 0x1150 LegoGameState::Area m_destLocation; // 0x1150
}; };
#endif // LEGOACT2_H #endif // LEGOACT2_H

View file

@ -58,7 +58,7 @@ MxLong InfoCenterEntity::HandleClick(LegoEventNotificationParam& p_param)
} }
case LegoGameState::Act::e_act2: { case LegoGameState::Act::e_act2: {
LegoAct2* act2 = (LegoAct2*) FindWorld(*g_act2mainScript, Act2mainScript::c__Act2Main); LegoAct2* act2 = (LegoAct2*) FindWorld(*g_act2mainScript, Act2mainScript::c__Act2Main);
act2->SetUnknown0x1150(2); act2->SetDestLocation(LegoGameState::e_infomain);
LegoAct2State* act2state = (LegoAct2State*) GameState()->GetState("LegoAct2State"); LegoAct2State* act2state = (LegoAct2State*) GameState()->GetState("LegoAct2State");
if (act2state) { if (act2state) {

View file

@ -58,7 +58,7 @@ LegoAct2::LegoAct2()
m_unk0x1138 = NULL; m_unk0x1138 = NULL;
m_unk0x1140 = 0; m_unk0x1140 = 0;
m_unk0x1144 = 0; m_unk0x1144 = 0;
m_unk0x1150 = 0; m_destLocation = LegoGameState::e_undefined;
m_unk0x10c8 = 0; m_unk0x10c8 = 0;
m_siFile = ""; m_siFile = "";
m_unk0x113c = 5; m_unk0x113c = 5;
@ -328,11 +328,15 @@ MxLong LegoAct2::HandleEndAction(MxEndActionNotificationParam& p_param)
return 0; return 0;
} }
// STUB: LEGO1 0x10050a50 // FUNCTION: LEGO1 0x10050a50
MxLong LegoAct2::HandleTransitionEnd() MxLong LegoAct2::HandleTransitionEnd()
{ {
// TODO if (m_destLocation != LegoGameState::e_undefined) {
return 0; GameState()->SwitchArea(m_destLocation);
m_destLocation = LegoGameState::e_undefined;
}
return 1;
} }
// STUB: LEGO1 0x10050a80 // STUB: LEGO1 0x10050a80
@ -393,7 +397,7 @@ MxBool LegoAct2::Escape()
m_gameState->m_unk0x0c = 0; m_gameState->m_unk0x0c = 0;
} }
m_unk0x1150 = 2; m_destLocation = LegoGameState::e_infomain;
return TRUE; return TRUE;
} }