implement/match Hospital::Tickle()

This commit is contained in:
Ramen2X 2024-03-15 18:50:43 -04:00
parent 78f0455463
commit 6baeffef44
2 changed files with 36 additions and 4 deletions

View File

@ -5,6 +5,7 @@
#include "hospitalstate.h"
#include "legogamestate.h"
#include "legoworld.h"
#include "mxstillpresenter.h"
#include "radio.h"
// VTABLE: LEGO1 0x100d9730
@ -51,8 +52,8 @@ class Hospital : public LegoWorld {
HospitalState* m_hospitalState; // 0x104
undefined2 m_unk0x108; // 0x108
undefined4 m_unk0x10c; // 0x10c
undefined4 m_unk0x110; // 0x110
undefined4 m_unk0x114; // 0x114
MxStillPresenter* m_unk0x110; // 0x110
MxStillPresenter* m_unk0x114; // 0x114
undefined m_unk0x118; // 0x118
undefined4 m_unk0x11c; // 0x11c
undefined4 m_unk0x120; // 0x120

View File

@ -7,12 +7,19 @@
#include "mxmisc.h"
#include "mxnotificationmanager.h"
#include "mxticklemanager.h"
#include "mxtimer.h"
DECOMP_SIZE_ASSERT(Hospital, 0x12c)
// GLOBAL: LEGO1 0x100f7918
undefined4 g_unk0x100f7918 = 3;
// GLOBAL: LEGO1 0x100f791c
undefined g_unk0x100f791c = 0;
// GLOBAL: LEGO1 0x100f7920
undefined g_unk0x100f7920 = 0;
// FUNCTION: LEGO1 0x100745e0
Hospital::Hospital()
{
@ -167,10 +174,34 @@ void Hospital::Enable(MxBool p_enable)
}
}
// STUB: LEGO1 0x10076270
// FUNCTION: LEGO1 0x10076270
MxResult Hospital::Tickle()
{
// TODO
if (!m_worldStarted) {
LegoWorld::Tickle();
return SUCCESS;
}
else {
if (g_unk0x100f7918 != 0) {
g_unk0x100f7918 -= 1;
}
MxLong time = Timer()->GetTime();
if (m_unk0x118 != 0) {
if (300 < (MxLong)(time - m_unk0x11c)) {
m_unk0x11c = time;
g_unk0x100f791c = !g_unk0x100f791c;
m_unk0x110->Enable(g_unk0x100f791c);
}
if (200 < (MxLong)(time - m_unk0x120)) {
m_unk0x120 = time;
g_unk0x100f7920 = !g_unk0x100f7920;
m_unk0x114->Enable(g_unk0x100f7920);
}
}
}
return SUCCESS;
}