mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-28 18:51:16 +00:00
Add StateStruct to InfocenterState
This commit is contained in:
parent
5a9bea65fd
commit
4695ce178c
@ -30,6 +30,7 @@ class InfocenterState : public LegoState {
|
||||
|
||||
inline MxS16 GetInfocenterBufferSize() { return sizeof(m_buffer) / sizeof(m_buffer[0]); }
|
||||
inline MxStillPresenter* GetInfocenterBufferElement(MxS32 p_index) { return m_buffer[p_index]; }
|
||||
inline StateStruct& GetUnknown0x68() { return m_unk0x68; }
|
||||
inline MxU32 GetUnknown0x74() { return m_unk0x74; }
|
||||
|
||||
inline void SetUnknown0x74(MxU32 p_unk0x74) { m_unk0x74 = p_unk0x74; }
|
||||
@ -38,35 +39,10 @@ class InfocenterState : public LegoState {
|
||||
// InfocenterState::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
// Members should be renamed with their offsets before use
|
||||
/*
|
||||
struct UnkStruct
|
||||
{
|
||||
undefined4 unk1;
|
||||
undefined2 unk2;
|
||||
undefined2 unk3;
|
||||
undefined2 unk4;
|
||||
};
|
||||
|
||||
undefined2 unk1;
|
||||
undefined2 unk2;
|
||||
undefined4 unk3;
|
||||
undefined4 padding1;
|
||||
void *unk4;
|
||||
undefined2 unk5;
|
||||
undefined2 unk6;
|
||||
undefined2 unk7;
|
||||
undefined2 padding2;
|
||||
void *unk8;
|
||||
undefined2 unk9;
|
||||
undefined2 unk10;
|
||||
undefined2 unk11;
|
||||
undefined2 padding3;
|
||||
UnkStruct unk12[6];
|
||||
undefined4 unk13;
|
||||
*/
|
||||
|
||||
undefined m_pad[0x6c];
|
||||
undefined m_unk0x08[0x18]; // 0x08
|
||||
StateStruct m_unk0x20[3]; // 0x20
|
||||
StateStruct m_unk0x44[3]; // 0x44
|
||||
StateStruct m_unk0x68; // 0x68
|
||||
MxU32 m_unk0x74; // 0x74
|
||||
MxStillPresenter* m_buffer[7]; // 0x78
|
||||
};
|
||||
|
||||
@ -51,7 +51,14 @@ class LegoState : public MxCore {
|
||||
undefined2 m_unk0x06; // 0x06
|
||||
MxU16 m_unk0x08; // 0x08
|
||||
|
||||
StateStruct();
|
||||
// FUNCTION: LEGO1 0x10017c00
|
||||
StateStruct()
|
||||
{
|
||||
m_unk0x04 = 0;
|
||||
m_unk0x00 = NULL;
|
||||
m_unk0x06 = 0;
|
||||
m_unk0x08 = 0;
|
||||
}
|
||||
|
||||
MxU32 FUN_10014d00();
|
||||
MxBool FUN_10014de0(MxU32 p_objectId);
|
||||
|
||||
@ -16,12 +16,3 @@ MxBool LegoState::StateStruct::FUN_10014de0(MxU32 p_objectId)
|
||||
// TODO
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10017c00
|
||||
LegoState::StateStruct::StateStruct()
|
||||
{
|
||||
m_unk0x04 = 0;
|
||||
m_unk0x00 = 0;
|
||||
m_unk0x06 = 0;
|
||||
m_unk0x08 = 0;
|
||||
}
|
||||
|
||||
@ -82,6 +82,7 @@ void ElevatorBottom::ReadyWorld()
|
||||
MxLong ElevatorBottom::HandleClick(LegoControlManagerEvent& p_param)
|
||||
{
|
||||
MxLong result = 0;
|
||||
|
||||
if (p_param.GetUnknown0x28() == 1) {
|
||||
switch (p_param.GetClickedObjectId()) {
|
||||
case 1:
|
||||
@ -97,9 +98,11 @@ MxLong ElevatorBottom::HandleClick(LegoControlManagerEvent& p_param)
|
||||
case 3:
|
||||
LegoGameState* gs = GameState();
|
||||
Act1State* state = (Act1State*) gs->GetState("Act1State");
|
||||
|
||||
if (state == NULL) {
|
||||
state = (Act1State*) gs->CreateState("Act1State");
|
||||
}
|
||||
|
||||
state->SetUnknown1c(1);
|
||||
m_unk0xf8 = 6;
|
||||
TransitionManager()->StartTransition(MxTransitionManager::e_pixelation, 50, FALSE, FALSE);
|
||||
@ -108,6 +111,7 @@ MxLong ElevatorBottom::HandleClick(LegoControlManagerEvent& p_param)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@ -457,6 +457,7 @@ MxU8 Infocenter::HandleMouseMove(MxS32 p_x, MxS32 p_y)
|
||||
FUN_10070d10(p_x, p_y);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -518,10 +519,13 @@ MxU8 Infocenter::HandleClick(LegoControlManagerEvent& p_param)
|
||||
{
|
||||
if (p_param.GetUnknown0x28() == 1) {
|
||||
m_infoManDialogueTimer = 0;
|
||||
|
||||
InfomainScript actionToPlay = c_noInfomain;
|
||||
StopCurrentAction();
|
||||
InfomainScript characterBitmap = c_noInfomain;
|
||||
|
||||
GameState();
|
||||
|
||||
switch (p_param.GetClickedObjectId()) {
|
||||
case c_leftArrowCtl:
|
||||
m_infocenterState->SetUnknown0x74(14);
|
||||
@ -532,8 +536,10 @@ MxU8 Infocenter::HandleClick(LegoControlManagerEvent& p_param)
|
||||
m_transitionDestination = 5;
|
||||
}
|
||||
else {
|
||||
// todo
|
||||
MxU32 objectId = m_infocenterState->GetUnknown0x68().FUN_10014d00();
|
||||
PlayAction((InfomainScript) objectId);
|
||||
}
|
||||
|
||||
break;
|
||||
case c_rightArrowCtl:
|
||||
m_infocenterState->SetUnknown0x74(14);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user