2023-06-29 04:10:08 -04:00
|
|
|
#include "infocenterstate.h"
|
|
|
|
|
2024-02-01 18:08:56 -05:00
|
|
|
#include "infocenter.h"
|
|
|
|
|
2023-10-12 12:18:24 -04:00
|
|
|
DECOMP_SIZE_ASSERT(InfocenterState, 0x94);
|
|
|
|
|
2024-02-01 18:08:56 -05:00
|
|
|
// GLOBAL: LEGO1 0x100f76a8
|
2024-02-10 11:51:56 -05:00
|
|
|
Infocenter::InfomainScript g_exitDialogueAct1[14] = {
|
2024-02-01 18:08:56 -05:00
|
|
|
Infocenter::c_clickOnObjectsGuidanceDialogue,
|
|
|
|
Infocenter::c_arrowNavigationGuidanceDialogue,
|
|
|
|
Infocenter::c_elevatorGuidanceDialogue,
|
|
|
|
Infocenter::c_radioGuidanceDialogue,
|
|
|
|
Infocenter::c_exitGuidanceDialogue1,
|
|
|
|
Infocenter::c_goOutsideGuidanceDialogue,
|
|
|
|
Infocenter::c_experimentGuidanceDialogue,
|
|
|
|
Infocenter::c_returnBackGuidanceDialogue1,
|
|
|
|
Infocenter::c_bricksterWarningDialogue,
|
|
|
|
Infocenter::c_infomanHiccup,
|
|
|
|
Infocenter::c_infomanSneeze,
|
|
|
|
Infocenter::c_infomanLaughs,
|
|
|
|
Infocenter::c_newGameGuidanceDialogue,
|
|
|
|
Infocenter::c_returnBackGuidanceDialogue3
|
|
|
|
};
|
|
|
|
|
|
|
|
// GLOBAL: LEGO1 0x100f76e0
|
2024-02-10 11:51:56 -05:00
|
|
|
Infocenter::InfomainScript g_exitDialogueAct23[6] = {
|
2024-02-01 18:08:56 -05:00
|
|
|
Infocenter::c_bricksterWarningDialogue,
|
|
|
|
Infocenter::c_newGameGuidanceDialogue,
|
|
|
|
Infocenter::c_bricksterEscapedDialogue1,
|
|
|
|
Infocenter::c_bricksterEscapedDialogue5,
|
|
|
|
Infocenter::c_exitGuidanceDialogue2
|
|
|
|
// Zero-terminated
|
|
|
|
};
|
|
|
|
|
|
|
|
// GLOBAL: LEGO1 0x100f76f8
|
2024-02-10 11:51:56 -05:00
|
|
|
Infocenter::InfomainScript g_returnDialogueAct1[6] = {
|
2024-02-01 18:08:56 -05:00
|
|
|
Infocenter::c_returnBackGuidanceDialogue2,
|
|
|
|
Infocenter::c_reenterInfoCenterDialogue1,
|
|
|
|
Infocenter::c_reenterInfoCenterDialogue2,
|
|
|
|
Infocenter::c_reenterInfoCenterDialogue3,
|
|
|
|
Infocenter::c_reenterInfoCenterDialogue4
|
|
|
|
// Zero-terminated
|
|
|
|
};
|
|
|
|
|
|
|
|
// GLOBAL: LEGO1 0x100f7710
|
2024-02-10 11:51:56 -05:00
|
|
|
Infocenter::InfomainScript g_returnDialogueAct2[4] = {
|
2024-02-01 18:08:56 -05:00
|
|
|
Infocenter::c_bricksterEscapedDialogue1,
|
|
|
|
Infocenter::c_bricksterEscapedDialogue2,
|
|
|
|
Infocenter::c_bricksterEscapedDialogue3,
|
|
|
|
// Zero-terminated
|
|
|
|
};
|
|
|
|
|
|
|
|
// GLOBAL: LEGO1 0x100f7720
|
2024-02-10 11:51:56 -05:00
|
|
|
Infocenter::InfomainScript g_returnDialogueAct3[4] = {
|
2024-02-01 18:08:56 -05:00
|
|
|
Infocenter::c_bricksterEscapedDialogue4,
|
|
|
|
Infocenter::c_bricksterEscapedDialogue5,
|
|
|
|
Infocenter::c_bricksterEscapedDialogue6,
|
|
|
|
Infocenter::c_bricksterEscapedDialogue7
|
|
|
|
};
|
|
|
|
|
|
|
|
// GLOBAL: LEGO1 0x100f7730
|
2024-02-10 11:51:56 -05:00
|
|
|
Infocenter::InfomainScript g_leaveDialogueAct1[4] = {
|
2024-02-01 18:08:56 -05:00
|
|
|
Infocenter::c_leaveInfoCenterDialogue1,
|
|
|
|
Infocenter::c_leaveInfoCenterDialogue2,
|
|
|
|
Infocenter::c_leaveInfoCenterDialogue3,
|
|
|
|
Infocenter::c_leaveInfoCenterDialogue4
|
|
|
|
};
|
|
|
|
|
|
|
|
// GLOBAL: LEGO1 0x100f7740
|
2024-02-10 11:51:56 -05:00
|
|
|
Infocenter::InfomainScript g_leaveDialogueAct2[4] =
|
2024-02-01 18:08:56 -05:00
|
|
|
{Infocenter::c_unk569, Infocenter::c_unk570, Infocenter::c_unk571, Infocenter::c_unk572};
|
|
|
|
|
|
|
|
// GLOBAL: LEGO1 0x100f7750
|
2024-02-10 11:51:56 -05:00
|
|
|
Infocenter::InfomainScript g_leaveDialogueAct3[4] = {
|
2024-02-01 18:08:56 -05:00
|
|
|
Infocenter::c_unk566,
|
|
|
|
Infocenter::c_unk567,
|
|
|
|
Infocenter::c_unk568,
|
|
|
|
// Zero-terminated
|
|
|
|
};
|
|
|
|
|
|
|
|
// GLOBAL: LEGO1 0x100f7760
|
2024-02-10 11:51:56 -05:00
|
|
|
Infocenter::InfomainScript g_bricksterDialogue[2] = {Infocenter::c_bricksterDialogue, Infocenter::c_bricksterLaughs};
|
2024-02-01 18:08:56 -05:00
|
|
|
|
2024-01-20 09:24:54 -05:00
|
|
|
// FUNCTION: LEGO1 0x10071600
|
2023-06-29 04:10:08 -04:00
|
|
|
InfocenterState::InfocenterState()
|
|
|
|
{
|
2024-02-10 11:51:56 -05:00
|
|
|
m_exitDialogueAct1 = LegoState::Playlist((MxU32*) g_exitDialogueAct1, _countof(g_exitDialogueAct1));
|
|
|
|
m_exitDialogueAct23 = LegoState::Playlist((MxU32*) g_exitDialogueAct23, _countof(g_exitDialogueAct23) - 1);
|
2024-02-01 18:08:56 -05:00
|
|
|
|
2024-02-10 11:51:56 -05:00
|
|
|
m_returnDialogue[LegoGameState::e_act1] =
|
|
|
|
LegoState::Playlist((MxU32*) g_returnDialogueAct1, _countof(g_returnDialogueAct1) - 1);
|
2024-02-01 18:08:56 -05:00
|
|
|
|
2024-02-10 11:51:56 -05:00
|
|
|
m_returnDialogue[LegoGameState::e_act2] =
|
|
|
|
LegoState::Playlist((MxU32*) g_returnDialogueAct2, _countof(g_returnDialogueAct2) - 1);
|
2024-02-01 18:08:56 -05:00
|
|
|
|
2024-02-10 11:51:56 -05:00
|
|
|
m_returnDialogue[LegoGameState::e_act3] =
|
|
|
|
LegoState::Playlist((MxU32*) g_returnDialogueAct3, _countof(g_returnDialogueAct3));
|
2024-02-01 18:08:56 -05:00
|
|
|
|
2024-02-10 11:51:56 -05:00
|
|
|
m_leaveDialogue[LegoGameState::e_act1] =
|
|
|
|
LegoState::Playlist((MxU32*) g_leaveDialogueAct1, _countof(g_leaveDialogueAct1));
|
2024-02-01 18:08:56 -05:00
|
|
|
|
2024-02-10 11:51:56 -05:00
|
|
|
m_leaveDialogue[LegoGameState::e_act2] =
|
|
|
|
LegoState::Playlist((MxU32*) g_leaveDialogueAct2, _countof(g_leaveDialogueAct2));
|
2024-02-01 18:08:56 -05:00
|
|
|
|
2024-02-10 11:51:56 -05:00
|
|
|
m_leaveDialogue[LegoGameState::e_act3] =
|
|
|
|
LegoState::Playlist((MxU32*) g_leaveDialogueAct3, _countof(g_leaveDialogueAct3) - 1);
|
2024-02-01 18:08:56 -05:00
|
|
|
|
2024-02-10 11:51:56 -05:00
|
|
|
m_bricksterDialogue = LegoState::Playlist((MxU32*) g_bricksterDialogue, _countof(g_bricksterDialogue));
|
2024-02-01 18:08:56 -05:00
|
|
|
|
2024-02-11 10:44:55 -05:00
|
|
|
memset(m_letters, 0, sizeof(m_letters));
|
2023-06-29 04:10:08 -04:00
|
|
|
}
|
|
|
|
|
2024-01-20 09:24:54 -05:00
|
|
|
// FUNCTION: LEGO1 0x10071920
|
2023-06-29 04:10:08 -04:00
|
|
|
InfocenterState::~InfocenterState()
|
|
|
|
{
|
2024-01-20 09:24:54 -05:00
|
|
|
MxS16 i = 0;
|
|
|
|
do {
|
2024-02-11 10:44:55 -05:00
|
|
|
if (GetNameLetter(i) != NULL) {
|
|
|
|
delete GetNameLetter(i)->GetAction();
|
|
|
|
delete GetNameLetter(i);
|
2024-01-20 09:24:54 -05:00
|
|
|
}
|
|
|
|
i++;
|
2024-02-11 10:44:55 -05:00
|
|
|
} while (i < GetMaxNameLength());
|
2023-06-29 04:10:08 -04:00
|
|
|
}
|