mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 08:24:16 +00:00
Match Infocenter::ReadyWorld
(#1389)
--------- Co-authored-by: jonschz <jonschz@users.noreply.github.com>
This commit is contained in:
@@ -51,10 +51,15 @@ public:
|
|||||||
return (InfomainScript::Script) m_leaveDialogue[GameState()->GetCurrentAct()].Next();
|
return (InfomainScript::Script) m_leaveDialogue[GameState()->GetCurrentAct()].Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10031ac0
|
||||||
|
InfomainScript::Script GetNextReturnDialogue()
|
||||||
|
{
|
||||||
|
return (InfomainScript::Script) m_returnDialogue[GameState()->GetCurrentAct()].Next();
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: These probably don't exist according to BETA
|
// TODO: These probably don't exist according to BETA
|
||||||
Playlist& GetExitDialogueAct1() { return m_exitDialogueAct1; }
|
Playlist& GetExitDialogueAct1() { return m_exitDialogueAct1; }
|
||||||
Playlist& GetExitDialogueAct23() { return m_exitDialogueAct23; }
|
Playlist& GetExitDialogueAct23() { return m_exitDialogueAct23; }
|
||||||
Playlist& GetReturnDialogue(LegoGameState::Act p_act) { return m_returnDialogue[p_act]; }
|
|
||||||
Playlist& GetBricksterDialogue() { return m_bricksterDialogue; }
|
Playlist& GetBricksterDialogue() { return m_bricksterDialogue; }
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x10071900
|
// SYNTHETIC: LEGO1 0x10071900
|
||||||
|
@@ -6,6 +6,7 @@ DECOMP_SIZE_ASSERT(LegoState, 0x08)
|
|||||||
DECOMP_SIZE_ASSERT(LegoState::Playlist, 0x0c)
|
DECOMP_SIZE_ASSERT(LegoState::Playlist, 0x0c)
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10014d00
|
// FUNCTION: LEGO1 0x10014d00
|
||||||
|
// FUNCTION: BETA10 0x10022580
|
||||||
MxU32 LegoState::Playlist::Next()
|
MxU32 LegoState::Playlist::Next()
|
||||||
{
|
{
|
||||||
MxU32 objectId;
|
MxU32 objectId;
|
||||||
|
@@ -456,7 +456,7 @@ void Infocenter::ReadyWorld()
|
|||||||
case 3:
|
case 3:
|
||||||
PlayCutscene(e_legoMovie, TRUE);
|
PlayCutscene(e_legoMovie, TRUE);
|
||||||
m_infocenterState->m_unk0x74 = 0;
|
m_infocenterState->m_unk0x74 = 0;
|
||||||
break;
|
return;
|
||||||
case 4:
|
case 4:
|
||||||
m_infocenterState->m_unk0x74 = 2;
|
m_infocenterState->m_unk0x74 = 2;
|
||||||
if (!m_infocenterState->HasRegistered()) {
|
if (!m_infocenterState->HasRegistered()) {
|
||||||
@@ -466,13 +466,12 @@ void Infocenter::ReadyWorld()
|
|||||||
PlayAction(InfomainScript::c_iicx18in_RunAnim);
|
PlayAction(InfomainScript::c_iicx18in_RunAnim);
|
||||||
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
||||||
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
||||||
break;
|
return;
|
||||||
case 5:
|
case 5:
|
||||||
default: {
|
default: {
|
||||||
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
||||||
|
|
||||||
InfomainScript::Script script =
|
InfomainScript::Script script = m_infocenterState->GetNextReturnDialogue();
|
||||||
(InfomainScript::Script) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next();
|
|
||||||
PlayAction(script);
|
PlayAction(script);
|
||||||
|
|
||||||
if (script == InfomainScript::c_iicx26in_RunAnim) {
|
if (script == InfomainScript::c_iicx26in_RunAnim) {
|
||||||
@@ -485,15 +484,13 @@ void Infocenter::ReadyWorld()
|
|||||||
m_bookAnimationTimer = 1;
|
m_bookAnimationTimer = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_infocenterState->m_unk0x74 = 11;
|
|
||||||
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 8:
|
case 8:
|
||||||
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
||||||
PlayAction(InfomainScript::c_iic043in_RunAnim);
|
PlayAction(InfomainScript::c_iic043in_RunAnim);
|
||||||
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
||||||
break;
|
return;
|
||||||
case 0xf:
|
case 0xf:
|
||||||
m_infocenterState->m_unk0x74 = 2;
|
m_infocenterState->m_unk0x74 = 2;
|
||||||
if (!m_infocenterState->HasRegistered()) {
|
if (!m_infocenterState->HasRegistered()) {
|
||||||
@@ -503,9 +500,9 @@ void Infocenter::ReadyWorld()
|
|||||||
PlayAction(InfomainScript::c_iicx17in_RunAnim);
|
PlayAction(InfomainScript::c_iicx17in_RunAnim);
|
||||||
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
||||||
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
FUN_10015820(FALSE, LegoOmni::c_disableInput | LegoOmni::c_disable3d | LegoOmni::c_clearScreen);
|
||||||
break;
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case LegoGameState::e_act2: {
|
case LegoGameState::e_act2: {
|
||||||
if (m_infocenterState->m_unk0x74 == 8) {
|
if (m_infocenterState->m_unk0x74 == 8) {
|
||||||
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
||||||
@@ -537,8 +534,7 @@ void Infocenter::ReadyWorld()
|
|||||||
m_infocenterState->m_unk0x74 = 5;
|
m_infocenterState->m_unk0x74 = 5;
|
||||||
m_destLocation = LegoGameState::e_act2main;
|
m_destLocation = LegoGameState::e_act2main;
|
||||||
|
|
||||||
InfomainScript::Script script =
|
InfomainScript::Script script = m_infocenterState->GetNextReturnDialogue();
|
||||||
(InfomainScript::Script) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next();
|
|
||||||
PlayAction(script);
|
PlayAction(script);
|
||||||
|
|
||||||
InputManager()->DisableInputProcessing();
|
InputManager()->DisableInputProcessing();
|
||||||
@@ -547,8 +543,7 @@ void Infocenter::ReadyWorld()
|
|||||||
}
|
}
|
||||||
|
|
||||||
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
||||||
InfomainScript::Script script =
|
InfomainScript::Script script = m_infocenterState->GetNextReturnDialogue();
|
||||||
(InfomainScript::Script) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next();
|
|
||||||
PlayAction(script);
|
PlayAction(script);
|
||||||
bgRed->Enable(TRUE);
|
bgRed->Enable(TRUE);
|
||||||
break;
|
break;
|
||||||
@@ -565,8 +560,7 @@ void Infocenter::ReadyWorld()
|
|||||||
Act3State* state = (Act3State*) GameState()->GetState("Act3State");
|
Act3State* state = (Act3State*) GameState()->GetState("Act3State");
|
||||||
GameState()->FindLoadedAct();
|
GameState()->FindLoadedAct();
|
||||||
|
|
||||||
if (state) {
|
if (state && state->GetUnknown0x08() == 3) {
|
||||||
if (state->GetUnknown0x08() == 3) {
|
|
||||||
bg->Enable(TRUE);
|
bg->Enable(TRUE);
|
||||||
PlayCutscene(e_badEndMovie, TRUE);
|
PlayCutscene(e_badEndMovie, TRUE);
|
||||||
m_infocenterState->m_unk0x74 = 0;
|
m_infocenterState->m_unk0x74 = 0;
|
||||||
@@ -579,7 +573,6 @@ void Infocenter::ReadyWorld()
|
|||||||
m_infocenterState->m_unk0x74 = 0;
|
m_infocenterState->m_unk0x74 = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (m_infocenterState->m_unk0x74 == 4) {
|
if (m_infocenterState->m_unk0x74 == 4) {
|
||||||
bgRed->Enable(TRUE);
|
bgRed->Enable(TRUE);
|
||||||
@@ -593,8 +586,7 @@ void Infocenter::ReadyWorld()
|
|||||||
m_infocenterState->m_unk0x74 = 5;
|
m_infocenterState->m_unk0x74 = 5;
|
||||||
m_destLocation = LegoGameState::e_act3script;
|
m_destLocation = LegoGameState::e_act3script;
|
||||||
|
|
||||||
InfomainScript::Script script =
|
InfomainScript::Script script = m_infocenterState->GetNextReturnDialogue();
|
||||||
(InfomainScript::Script) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next();
|
|
||||||
PlayAction(script);
|
PlayAction(script);
|
||||||
|
|
||||||
InputManager()->DisableInputProcessing();
|
InputManager()->DisableInputProcessing();
|
||||||
@@ -603,8 +595,7 @@ void Infocenter::ReadyWorld()
|
|||||||
}
|
}
|
||||||
|
|
||||||
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
PlayMusic(JukeboxScript::c_InformationCenter_Music);
|
||||||
InfomainScript::Script script =
|
InfomainScript::Script script = m_infocenterState->GetNextReturnDialogue();
|
||||||
(InfomainScript::Script) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next();
|
|
||||||
PlayAction(script);
|
PlayAction(script);
|
||||||
bgRed->Enable(TRUE);
|
bgRed->Enable(TRUE);
|
||||||
break;
|
break;
|
||||||
@@ -1228,6 +1219,7 @@ MxLong Infocenter::HandleNotification0(MxNotificationParam& p_param)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10070aa0
|
// FUNCTION: LEGO1 0x10070aa0
|
||||||
|
// FUNCTION: BETA10 0x10030508
|
||||||
void Infocenter::Enable(MxBool p_enable)
|
void Infocenter::Enable(MxBool p_enable)
|
||||||
{
|
{
|
||||||
LegoWorld::Enable(p_enable);
|
LegoWorld::Enable(p_enable);
|
||||||
|
Reference in New Issue
Block a user