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
#include "act2brick.h"
#include "legogamestate.h"
#include "legostate.h"
#include "legoworld.h"
@ -66,7 +67,7 @@ class LegoAct2 : public LegoWorld {
void Enable(MxBool p_enable) override; // vtable+0x68
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(
MxS32 p_param1,
@ -110,7 +111,7 @@ class LegoAct2 : public LegoWorld {
undefined4 m_unk0x1140; // 0x1140
undefined4 m_unk0x1144; // 0x1144
undefined m_unk0x1148[0x08]; // 0x1148
undefined4 m_unk0x1150; // 0x1150
LegoGameState::Area m_destLocation; // 0x1150
};
#endif // LEGOACT2_H

View file

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

View file

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