refactor infocenter

This commit is contained in:
Ramen2X 2024-03-09 21:00:20 -05:00
parent 5c5286ff86
commit 9e06d71813
3 changed files with 210 additions and 339 deletions

View File

@ -1,6 +1,7 @@
#ifndef INFOCENTER_H #ifndef INFOCENTER_H
#define INFOCENTER_H #define INFOCENTER_H
#include "infomain_actions.h"
#include "legogamestate.h" #include "legogamestate.h"
#include "legoworld.h" #include "legoworld.h"
#include "mxrect32.h" #include "mxrect32.h"
@ -43,138 +44,6 @@ class Infocenter : public LegoWorld {
e_laura e_laura
}; };
enum InfomainScript {
c_noInfomain = -1,
c_leftArrowCtl = 1,
c_rightArrowCtl = 2,
c_infoCtl = 3,
c_doorCtl = 4,
c_boatCtl = 10,
c_raceCtl = 11,
c_pizzaCtl = 12,
c_gasCtl = 13,
c_medCtl = 14,
c_copCtl = 15,
c_bigInfoCtl = 16,
c_bookCtl = 17,
c_radioCtl = 18,
c_mamaCtl = 21,
c_papaCtl = 22,
c_pepperCtl = 23,
c_nickCtl = 24,
c_lauraCtl = 25,
c_mamaSelected = 30,
c_papaSelected = 31,
c_pepperSelected = 32,
c_nickSelected = 33,
c_lauraSelected = 34,
c_mamaMovie = 40,
c_papaMovie = 41,
c_pepperMovie = 42,
c_nickMovie = 43,
c_lauraMovie = 44,
c_goToRegBook = 70,
c_goToRegBookRed = 71,
c_unk499 = 499,
c_welcomeDialogue = 500,
c_goodJobDialogue = 501,
c_clickOnInfomanDialogue = 502,
c_tickleInfomanDialogue = 503,
c_letsGetStartedDialogue = 504,
c_clickOnObjectsGuidanceDialogue = 505,
c_arrowNavigationGuidanceDialogue = 506,
c_elevatorGuidanceDialogue = 507,
c_radioGuidanceDialogue = 508,
c_exitGuidanceDialogue1 = 509,
c_exitGuidanceDialogue2 = 510,
c_goOutsideGuidanceDialogue = 511,
c_experimentGuidanceDialogue = 512,
c_returnBackGuidanceDialogue1 = 513,
c_returnBackGuidanceDialogue2 = 514,
c_bricksterWarningDialogue = 515,
c_newGameGuidanceDialogue = 516,
c_returnBackGuidanceDialogue3 = 517,
c_reenterInfoCenterDialogue1 = 518,
c_reenterInfoCenterDialogue2 = 519,
c_reenterInfoCenterDialogue3 = 520,
c_reenterInfoCenterDialogue4 = 521,
c_exitConfirmationDialogue = 522,
c_saveGameOptionsDialogueUnused = 523,
c_exitGameDialogue = 524,
c_bricksterEscapedDialogue1 = 525,
c_bricksterEscapedDialogue2 = 526,
c_bricksterEscapedDialogue3 = 527,
c_bricksterEscapedDialogue4 = 528,
c_bricksterEscapedDialogue5 = 529,
c_bricksterEscapedDialogue6 = 530,
c_bricksterEscapedDialogue7 = 531,
c_infomanHiccup = 532,
c_infomanWalkOffScreenLeftUnused = 533,
c_infomanSneeze = 534,
c_infomanWalkOffScreenRightUnused = 535,
c_infomanLaughs = 536,
c_infomanLooksBehindAtScreenUnused = 537,
c_infomanReturnsFromScreenUnused = 538,
c_goodEndingDialogue = 539,
c_badEndingDialogue = 540,
c_pepperCharacterSelect = 541,
c_mamaCharacterSelect = 542,
c_papaCharacterSelect = 543,
c_nickCharacterSelect = 544,
c_lauraCharacterSelect = 545,
c_creditsDialogue = 551,
c_noCDDialogueUnused1 = 552,
c_noCDDialogueUnused2 = 553,
c_gasCtlDescription = 555,
c_medCtlDescription = 556,
c_infoCtlDescription = 557,
c_boatCtlDescription = 558,
c_copCtlDescription = 559,
c_pizzaCtlDescription = 560,
c_raceCtlDescription = 561,
c_leaveInfoCenterDialogue1 = 562,
c_leaveInfoCenterDialogue2 = 563,
c_leaveInfoCenterDialogue3 = 564,
c_leaveInfoCenterDialogue4 = 565,
c_unk566 = 566,
c_unk567 = 567,
c_unk568 = 568,
c_unk569 = 569,
c_unk570 = 570,
c_unk571 = 571,
c_unk572 = 572,
c_registerToContinueDialogue = 573,
c_bricksterDialogue = 574,
c_bricksterLaughs = 575,
};
enum SndAmimScript {
c_bookWig = 400
};
Infocenter(); Infocenter();
~Infocenter() override; ~Infocenter() override;
@ -224,26 +93,26 @@ class Infocenter : public LegoWorld {
void StartCredits(); void StartCredits();
void StopCredits(); void StopCredits();
void PlayAction(InfomainScript p_objectId); void PlayAction(InfomainScript::Script p_objectId);
void StopCurrentAction(); void StopCurrentAction();
void PlayBookAnimation(); void PlayBookAnimation();
void StopBookAnimation(); void StopBookAnimation();
InfomainScript m_currentInfomainScript; // 0xf8 InfomainScript::Script m_currentInfomainScript; // 0xf8
MxS16 m_selectedCharacter; // 0xfc MxS16 m_selectedCharacter; // 0xfc
InfocenterState* m_infocenterState; // 0x100 InfocenterState* m_infocenterState; // 0x100
LegoGameState::Area m_transitionDestination; // 0x104 LegoGameState::Area m_transitionDestination; // 0x104
Cutscene m_currentCutscene; // 0x108 Cutscene m_currentCutscene; // 0x108
Radio m_radio; // 0x10c Radio m_radio; // 0x10c
MxStillPresenter* m_unk0x11c; // 0x11c MxStillPresenter* m_unk0x11c; // 0x11c
InfocenterMapEntry m_mapAreas[7]; // 0x120 InfocenterMapEntry m_mapAreas[7]; // 0x120
MxS16 m_unk0x1c8; // 0x1c8 MxS16 m_unk0x1c8; // 0x1c8
MxStillPresenter* m_frameHotBitmap; // 0x1cc MxStillPresenter* m_frameHotBitmap; // 0x1cc
MxS16 m_infoManDialogueTimer; // 0x1d0 MxS16 m_infoManDialogueTimer; // 0x1d0
MxS16 m_bookAnimationTimer; // 0x1d2 MxS16 m_bookAnimationTimer; // 0x1d2
MxU16 m_unk0x1d4; // 0x1d4 MxU16 m_unk0x1d4; // 0x1d4
MxS16 m_unk0x1d6; // 0x1d6 MxS16 m_unk0x1d6; // 0x1d6
}; };
#endif // INFOCENTER_H #endif // INFOCENTER_H

View File

@ -5,81 +5,81 @@
DECOMP_SIZE_ASSERT(InfocenterState, 0x94); DECOMP_SIZE_ASSERT(InfocenterState, 0x94);
// GLOBAL: LEGO1 0x100f76a8 // GLOBAL: LEGO1 0x100f76a8
Infocenter::InfomainScript g_exitDialogueAct1[14] = { InfomainScript::Script g_exitDialogueAct1[14] = {
Infocenter::c_clickOnObjectsGuidanceDialogue, InfomainScript::c_iic019in_RunAnim,
Infocenter::c_arrowNavigationGuidanceDialogue, InfomainScript::c_iic020in_RunAnim,
Infocenter::c_elevatorGuidanceDialogue, InfomainScript::c_iic021in_RunAnim,
Infocenter::c_radioGuidanceDialogue, InfomainScript::c_iic022in_RunAnim,
Infocenter::c_exitGuidanceDialogue1, InfomainScript::c_iic023in_RunAnim,
Infocenter::c_goOutsideGuidanceDialogue, InfomainScript::c_iic024in_RunAnim,
Infocenter::c_experimentGuidanceDialogue, InfomainScript::c_iic025in_RunAnim,
Infocenter::c_returnBackGuidanceDialogue1, InfomainScript::c_iic026in_RunAnim,
Infocenter::c_bricksterWarningDialogue, InfomainScript::c_iic027in_RunAnim,
Infocenter::c_infomanHiccup, InfomainScript::c_iica28in_RunAnim,
Infocenter::c_infomanSneeze, InfomainScript::c_iicb28in_RunAnim,
Infocenter::c_infomanLaughs, InfomainScript::c_iicc28in_RunAnim,
Infocenter::c_newGameGuidanceDialogue, InfomainScript::c_iic029in_RunAnim,
Infocenter::c_returnBackGuidanceDialogue3 InfomainScript::c_iic032in_RunAnim
}; };
// GLOBAL: LEGO1 0x100f76e0 // GLOBAL: LEGO1 0x100f76e0
Infocenter::InfomainScript g_exitDialogueAct23[6] = { InfomainScript::Script g_exitDialogueAct23[6] = {
Infocenter::c_bricksterWarningDialogue, InfomainScript::c_iic027in_RunAnim,
Infocenter::c_newGameGuidanceDialogue, InfomainScript::c_iic029in_RunAnim,
Infocenter::c_bricksterEscapedDialogue1, InfomainScript::c_iic048in_RunAnim,
Infocenter::c_bricksterEscapedDialogue5, InfomainScript::c_iic056in_RunAnim,
Infocenter::c_exitGuidanceDialogue2 InfomainScript::c_iicx23in_RunAnim
// Zero-terminated // Zero-terminated
}; };
// GLOBAL: LEGO1 0x100f76f8 // GLOBAL: LEGO1 0x100f76f8
Infocenter::InfomainScript g_returnDialogueAct1[6] = { InfomainScript::Script g_returnDialogueAct1[6] = {
Infocenter::c_returnBackGuidanceDialogue2, InfomainScript::c_iicx26in_RunAnim,
Infocenter::c_reenterInfoCenterDialogue1, InfomainScript::c_iic033in_RunAnim,
Infocenter::c_reenterInfoCenterDialogue2, InfomainScript::c_iic034in_RunAnim,
Infocenter::c_reenterInfoCenterDialogue3, InfomainScript::c_iic035in_RunAnim,
Infocenter::c_reenterInfoCenterDialogue4 InfomainScript::c_iic036in_RunAnim
// Zero-terminated // Zero-terminated
}; };
// GLOBAL: LEGO1 0x100f7710 // GLOBAL: LEGO1 0x100f7710
Infocenter::InfomainScript g_returnDialogueAct2[4] = { InfomainScript::Script g_returnDialogueAct2[4] = {
Infocenter::c_bricksterEscapedDialogue1, InfomainScript::c_iic048in_RunAnim,
Infocenter::c_bricksterEscapedDialogue2, InfomainScript::c_iic049in_RunAnim,
Infocenter::c_bricksterEscapedDialogue3, InfomainScript::c_iic050in_RunAnim,
// Zero-terminated // Zero-terminated
}; };
// GLOBAL: LEGO1 0x100f7720 // GLOBAL: LEGO1 0x100f7720
Infocenter::InfomainScript g_returnDialogueAct3[4] = { InfomainScript::Script g_returnDialogueAct3[4] = {
Infocenter::c_bricksterEscapedDialogue4, InfomainScript::c_iic055in_RunAnim,
Infocenter::c_bricksterEscapedDialogue5, InfomainScript::c_iic056in_RunAnim,
Infocenter::c_bricksterEscapedDialogue6, InfomainScript::c_iic057in_RunAnim,
Infocenter::c_bricksterEscapedDialogue7 InfomainScript::c_iic058in_RunAnim
}; };
// GLOBAL: LEGO1 0x100f7730 // GLOBAL: LEGO1 0x100f7730
Infocenter::InfomainScript g_leaveDialogueAct1[4] = { InfomainScript::Script g_leaveDialogueAct1[4] = {
Infocenter::c_leaveInfoCenterDialogue1, InfomainScript::c_iic039in_PlayWav,
Infocenter::c_leaveInfoCenterDialogue2, InfomainScript::c_iic040in_PlayWav,
Infocenter::c_leaveInfoCenterDialogue3, InfomainScript::c_iic041in_PlayWav,
Infocenter::c_leaveInfoCenterDialogue4 InfomainScript::c_iic042in_PlayWav
}; };
// GLOBAL: LEGO1 0x100f7740 // GLOBAL: LEGO1 0x100f7740
Infocenter::InfomainScript g_leaveDialogueAct2[4] = InfomainScript::Script g_leaveDialogueAct2[4] =
{Infocenter::c_unk569, Infocenter::c_unk570, Infocenter::c_unk571, Infocenter::c_unk572}; {InfomainScript::c_iic051in_PlayWav, InfomainScript::c_iic052in_PlayWav, InfomainScript::c_iic053in_PlayWav, InfomainScript::c_iic054in_PlayWav};
// GLOBAL: LEGO1 0x100f7750 // GLOBAL: LEGO1 0x100f7750
Infocenter::InfomainScript g_leaveDialogueAct3[4] = { InfomainScript::Script g_leaveDialogueAct3[4] = {
Infocenter::c_unk566, InfomainScript::c_iic059in_PlayWav,
Infocenter::c_unk567, InfomainScript::c_iic060in_PlayWav,
Infocenter::c_unk568, InfomainScript::c_iic061in_PlayWav,
// Zero-terminated // Zero-terminated
}; };
// GLOBAL: LEGO1 0x100f7760 // GLOBAL: LEGO1 0x100f7760
Infocenter::InfomainScript g_bricksterDialogue[2] = {Infocenter::c_bricksterDialogue, Infocenter::c_bricksterLaughs}; InfomainScript::Script g_bricksterDialogue[2] = {InfomainScript::c_sbleh2br_PlayWav, InfomainScript::c_snshahbr_PlayWav};
// FUNCTION: LEGO1 0x10071600 // FUNCTION: LEGO1 0x10071600
InfocenterState::InfocenterState() InfocenterState::InfocenterState()

View File

@ -1,6 +1,7 @@
#include "infocenter.h" #include "infocenter.h"
#include "act3state.h" #include "act3state.h"
#include "credits_actions.h"
#include "helicopterstate.h" #include "helicopterstate.h"
#include "infocenterstate.h" #include "infocenterstate.h"
#include "jukebox.h" #include "jukebox.h"
@ -24,6 +25,7 @@
#include "mxstillpresenter.h" #include "mxstillpresenter.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"
#include "sndanim_actions.h"
DECOMP_SIZE_ASSERT(Infocenter, 0x1d8) DECOMP_SIZE_ASSERT(Infocenter, 0x1d8)
DECOMP_SIZE_ASSERT(InfocenterMapEntry, 0x18) DECOMP_SIZE_ASSERT(InfocenterMapEntry, 0x18)
@ -42,7 +44,7 @@ Infocenter::Infocenter()
m_infocenterState = NULL; m_infocenterState = NULL;
m_frameHotBitmap = NULL; m_frameHotBitmap = NULL;
m_transitionDestination = LegoGameState::e_noArea; m_transitionDestination = LegoGameState::e_noArea;
m_currentInfomainScript = c_noInfomain; m_currentInfomainScript = InfomainScript::c_noneInfomain;
m_currentCutscene = e_noIntro; m_currentCutscene = e_noIntro;
memset(&m_mapAreas, 0, sizeof(m_mapAreas)); memset(&m_mapAreas, 0, sizeof(m_mapAreas));
@ -188,15 +190,15 @@ MxLong Infocenter::Notify(MxParam& p_param)
MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param) MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param)
{ {
MxDSAction* action = p_param.GetAction(); MxDSAction* action = p_param.GetAction();
if (action->GetAtomId() == *g_creditsScript && action->GetObjectId() == c_unk499) { if (action->GetAtomId() == *g_creditsScript && action->GetObjectId() == CreditsScript::c_LegoCredits) {
Lego()->CloseMainWindow(); Lego()->CloseMainWindow();
return 1; return 1;
} }
if (action->GetAtomId() == m_atom && if (action->GetAtomId() == m_atom &&
(action->GetObjectId() == c_mamaMovie || action->GetObjectId() == c_papaMovie || (action->GetObjectId() == InfomainScript::c_Mama_All_Movie || action->GetObjectId() == InfomainScript::c_Papa_All_Movie ||
action->GetObjectId() == c_pepperMovie || action->GetObjectId() == c_nickMovie || action->GetObjectId() == InfomainScript::c_Pepper_All_Movie || action->GetObjectId() == InfomainScript::c_Nick_All_Movie ||
action->GetObjectId() == c_lauraMovie)) { action->GetObjectId() == InfomainScript::c_Laura_All_Movie)) {
if (m_unk0x1d4) { if (m_unk0x1d4) {
m_unk0x1d4--; m_unk0x1d4--;
} }
@ -207,19 +209,19 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param)
switch (m_selectedCharacter) { switch (m_selectedCharacter) {
case e_pepper: case e_pepper:
PlayAction(c_pepperCharacterSelect); PlayAction(InfomainScript::c_avo901in_RunAnim);
break; break;
case e_mama: case e_mama:
PlayAction(c_mamaCharacterSelect); PlayAction(InfomainScript::c_avo902in_RunAnim);
break; break;
case e_papa: case e_papa:
PlayAction(c_papaCharacterSelect); PlayAction(InfomainScript::c_avo903in_RunAnim);
break; break;
case e_nick: case e_nick:
PlayAction(c_nickCharacterSelect); PlayAction(InfomainScript::c_avo904in_RunAnim);
break; break;
case e_laura: case e_laura:
PlayAction(c_lauraCharacterSelect); PlayAction(InfomainScript::c_avo905in_RunAnim);
break; break;
default: default:
break; break;
@ -235,7 +237,7 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param)
return result; return result;
} }
if (action->GetObjectId() == c_returnBackGuidanceDialogue2) { if (action->GetObjectId() == InfomainScript::c_iicx26in_RunAnim) {
ControlManager()->FUN_100293c0(0x10, action->GetAtomId().GetInternal(), 0); ControlManager()->FUN_100293c0(0x10, action->GetAtomId().GetInternal(), 0);
m_unk0x1d6 = 0; m_unk0x1d6 = 0;
} }
@ -252,13 +254,13 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param)
case e_badEndMovie: case e_badEndMovie:
StopCutscene(); StopCutscene();
m_infocenterState->SetUnknown0x74(11); m_infocenterState->SetUnknown0x74(11);
PlayAction(c_badEndingDialogue); PlayAction(InfomainScript::c_tic092in_RunAnim);
m_currentCutscene = e_noIntro; m_currentCutscene = e_noIntro;
return 1; return 1;
case e_goodEndMovie: case e_goodEndMovie:
StopCutscene(); StopCutscene();
m_infocenterState->SetUnknown0x74(11); m_infocenterState->SetUnknown0x74(11);
PlayAction(c_goodEndingDialogue); PlayAction(InfomainScript::c_tic089in_RunAnim);
m_currentCutscene = e_noIntro; m_currentCutscene = e_noIntro;
return 1; return 1;
} }
@ -266,7 +268,7 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param)
// default / 2nd case probably? // default / 2nd case probably?
StopCutscene(); StopCutscene();
m_infocenterState->SetUnknown0x74(11); m_infocenterState->SetUnknown0x74(11);
PlayAction(c_welcomeDialogue); PlayAction(InfomainScript::c_iic001in_RunAnim);
m_currentCutscene = e_noIntro; m_currentCutscene = e_noIntro;
if (!m_infocenterState->HasRegistered()) { if (!m_infocenterState->HasRegistered()) {
@ -279,13 +281,13 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param)
switch (m_currentCutscene) { switch (m_currentCutscene) {
case e_badEndMovie: case e_badEndMovie:
PlayAction(c_badEndingDialogue); PlayAction(InfomainScript::c_tic092in_RunAnim);
break; break;
case e_goodEndMovie: case e_goodEndMovie:
PlayAction(c_goodEndingDialogue); PlayAction(InfomainScript::c_tic089in_RunAnim);
break; break;
default: default:
PlayAction(c_welcomeDialogue); PlayAction(InfomainScript::c_iic001in_RunAnim);
} }
m_currentCutscene = e_noIntro; m_currentCutscene = e_noIntro;
@ -296,7 +298,7 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param)
BackgroundAudioManager()->RaiseVolume(); BackgroundAudioManager()->RaiseVolume();
return 1; return 1;
case 4: case 4:
if (action->GetObjectId() == c_goToRegBook || action->GetObjectId() == c_goToRegBookRed) { if (action->GetObjectId() == InfomainScript::c_GoTo_RegBook || action->GetObjectId() == InfomainScript::c_GoTo_RegBook_Red) {
TransitionManager()->StartTransition(MxTransitionManager::e_pixelation, 50, FALSE, FALSE); TransitionManager()->StartTransition(MxTransitionManager::e_pixelation, 50, FALSE, FALSE);
m_infocenterState->SetUnknown0x74(14); m_infocenterState->SetUnknown0x74(14);
return 1; return 1;
@ -313,9 +315,9 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param)
} }
break; break;
case 11: case 11:
if (!m_infocenterState->HasRegistered() && m_currentInfomainScript != c_mamaMovie && if (!m_infocenterState->HasRegistered() && m_currentInfomainScript != InfomainScript::c_Mama_All_Movie &&
m_currentInfomainScript != c_papaMovie && m_currentInfomainScript != c_pepperMovie && m_currentInfomainScript != InfomainScript::c_Papa_All_Movie && m_currentInfomainScript != InfomainScript::c_Pepper_All_Movie &&
m_currentInfomainScript != c_nickMovie && m_currentInfomainScript != c_lauraMovie) { m_currentInfomainScript != InfomainScript::c_Nick_All_Movie && m_currentInfomainScript != InfomainScript::c_Laura_All_Movie) {
m_infoManDialogueTimer = 1; m_infoManDialogueTimer = 1;
PlayMusic(JukeBox::e_informationCenter); PlayMusic(JukeBox::e_informationCenter);
} }
@ -361,7 +363,7 @@ void Infocenter::ReadyWorld()
m_bookAnimationTimer = 1; m_bookAnimationTimer = 1;
} }
PlayAction(c_letsGetStartedDialogue); PlayAction(InfomainScript::c_iicx18in_RunAnim);
PlayMusic(JukeBox::e_informationCenter); PlayMusic(JukeBox::e_informationCenter);
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; break;
@ -369,11 +371,11 @@ void Infocenter::ReadyWorld()
default: { default: {
PlayMusic(JukeBox::e_informationCenter); PlayMusic(JukeBox::e_informationCenter);
InfomainScript script = InfomainScript::Script script =
(InfomainScript) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next(); (InfomainScript::Script) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next();
PlayAction(script); PlayAction(script);
if (script == c_returnBackGuidanceDialogue2) { if (script == InfomainScript::c_iicx26in_RunAnim) {
m_unk0x1d6 = 1; m_unk0x1d6 = 1;
} }
@ -389,7 +391,7 @@ void Infocenter::ReadyWorld()
} }
case 8: case 8:
PlayMusic(JukeBox::e_informationCenter); PlayMusic(JukeBox::e_informationCenter);
PlayAction(c_exitConfirmationDialogue); 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; break;
case 0xf: case 0xf:
@ -398,7 +400,7 @@ void Infocenter::ReadyWorld()
m_bookAnimationTimer = 1; m_bookAnimationTimer = 1;
} }
PlayAction(c_clickOnInfomanDialogue); PlayAction(InfomainScript::c_iicx17in_RunAnim);
PlayMusic(JukeBox::e_informationCenter); PlayMusic(JukeBox::e_informationCenter);
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; break;
@ -408,7 +410,7 @@ void Infocenter::ReadyWorld()
if (m_infocenterState->GetUnknown0x74() == 8) { if (m_infocenterState->GetUnknown0x74() == 8) {
PlayMusic(JukeBox::e_informationCenter); PlayMusic(JukeBox::e_informationCenter);
bgRed->Enable(TRUE); bgRed->Enable(TRUE);
PlayAction(c_exitConfirmationDialogue); 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);
return; return;
} }
@ -435,8 +437,8 @@ void Infocenter::ReadyWorld()
m_infocenterState->SetUnknown0x74(5); m_infocenterState->SetUnknown0x74(5);
m_transitionDestination = LegoGameState::e_act2main; m_transitionDestination = LegoGameState::e_act2main;
InfomainScript script = InfomainScript::Script script =
(InfomainScript) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next(); (InfomainScript::Script) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next();
PlayAction(script); PlayAction(script);
InputManager()->DisableInputProcessing(); InputManager()->DisableInputProcessing();
@ -445,8 +447,8 @@ void Infocenter::ReadyWorld()
} }
PlayMusic(JukeBox::e_informationCenter); PlayMusic(JukeBox::e_informationCenter);
InfomainScript script = InfomainScript::Script script =
(InfomainScript) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next(); (InfomainScript::Script) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next();
PlayAction(script); PlayAction(script);
bgRed->Enable(TRUE); bgRed->Enable(TRUE);
break; break;
@ -455,7 +457,7 @@ void Infocenter::ReadyWorld()
if (m_infocenterState->GetUnknown0x74() == 8) { if (m_infocenterState->GetUnknown0x74() == 8) {
PlayMusic(JukeBox::e_informationCenter); PlayMusic(JukeBox::e_informationCenter);
bgRed->Enable(TRUE); bgRed->Enable(TRUE);
PlayAction(c_exitConfirmationDialogue); 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);
return; return;
} }
@ -491,8 +493,8 @@ void Infocenter::ReadyWorld()
m_infocenterState->SetUnknown0x74(5); m_infocenterState->SetUnknown0x74(5);
m_transitionDestination = LegoGameState::e_act3script; m_transitionDestination = LegoGameState::e_act3script;
InfomainScript script = InfomainScript::Script script =
(InfomainScript) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next(); (InfomainScript::Script) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next();
PlayAction(script); PlayAction(script);
InputManager()->DisableInputProcessing(); InputManager()->DisableInputProcessing();
@ -501,8 +503,8 @@ void Infocenter::ReadyWorld()
} }
PlayMusic(JukeBox::e_informationCenter); PlayMusic(JukeBox::e_informationCenter);
InfomainScript script = InfomainScript::Script script =
(InfomainScript) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next(); (InfomainScript::Script) m_infocenterState->GetReturnDialogue(GameState()->GetCurrentAct()).Next();
PlayAction(script); PlayAction(script);
bgRed->Enable(TRUE); bgRed->Enable(TRUE);
break; break;
@ -518,21 +520,21 @@ void Infocenter::InitializeBitmaps()
{ {
m_radio.Initialize(TRUE); m_radio.Initialize(TRUE);
((MxPresenter*) Find(m_atom, c_leftArrowCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_LeftArrow_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_rightArrowCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_RightArrow_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_infoCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_Info_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_boatCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_Boat_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_raceCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_Race_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_pizzaCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_Pizza_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_gasCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_Gas_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_medCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_Med_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_copCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_Cop_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_mamaCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_Mama_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_papaCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_Papa_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_pepperCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_Pepper_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_nickCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_Nick_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_lauraCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_Laura_Ctl))->Enable(TRUE);
((MxPresenter*) Find(m_atom, c_radioCtl))->Enable(TRUE); ((MxPresenter*) Find(m_atom, InfomainScript::c_Radio_Ctl))->Enable(TRUE);
m_mapAreas[0].m_presenter = (MxStillPresenter*) Find("MxStillPresenter", "Info_A_Bitmap"); m_mapAreas[0].m_presenter = (MxStillPresenter*) Find("MxStillPresenter", "Info_A_Bitmap");
m_mapAreas[0].m_area.SetLeft(391); m_mapAreas[0].m_area.SetLeft(391);
@ -633,7 +635,7 @@ MxLong Infocenter::HandleKeyPress(MxS8 p_key)
case 4: case 4:
break; break;
default: { default: {
InfomainScript script = m_currentInfomainScript; InfomainScript::Script script = m_currentInfomainScript;
StopCurrentAction(); StopCurrentAction();
switch (m_infocenterState->GetUnknown0x74()) { switch (m_infocenterState->GetUnknown0x74()) {
@ -667,19 +669,19 @@ MxU8 Infocenter::HandleButtonUp(MxS32 p_x, MxS32 p_y)
MxControlPresenter* control = InputManager()->GetControlManager()->FUN_100294e0(p_x - 1, p_y - 1); MxControlPresenter* control = InputManager()->GetControlManager()->FUN_100294e0(p_x - 1, p_y - 1);
switch (m_unk0x11c->GetAction()->GetObjectId()) { switch (m_unk0x11c->GetAction()->GetObjectId()) {
case c_pepperSelected: case InfomainScript::c_PepperHot_Bitmap:
m_selectedCharacter = e_pepper; m_selectedCharacter = e_pepper;
break; break;
case c_mamaSelected: case InfomainScript::c_MamaHot_Bitmap:
m_selectedCharacter = e_mama; m_selectedCharacter = e_mama;
break; break;
case c_papaSelected: case InfomainScript::c_PapaHot_Bitmap:
m_selectedCharacter = e_papa; m_selectedCharacter = e_papa;
break; break;
case c_nickSelected: case InfomainScript::c_NickHot_Bitmap:
m_selectedCharacter = e_nick; m_selectedCharacter = e_nick;
break; break;
case c_lauraSelected: case InfomainScript::c_LauraHot_Bitmap:
m_selectedCharacter = e_laura; m_selectedCharacter = e_laura;
break; break;
} }
@ -688,43 +690,43 @@ MxU8 Infocenter::HandleButtonUp(MxS32 p_x, MxS32 p_y)
m_infoManDialogueTimer = 0; m_infoManDialogueTimer = 0;
switch (control->GetAction()->GetObjectId()) { switch (control->GetAction()->GetObjectId()) {
case c_pepperCtl: case InfomainScript::c_Pepper_Ctl:
if (m_selectedCharacter == e_pepper) { if (m_selectedCharacter == e_pepper) {
m_radio.Stop(); m_radio.Stop();
BackgroundAudioManager()->Stop(); BackgroundAudioManager()->Stop();
PlayAction(c_pepperMovie); PlayAction(InfomainScript::c_Pepper_All_Movie);
m_unk0x1d4++; m_unk0x1d4++;
} }
break; break;
case c_mamaCtl: case InfomainScript::c_Mama_Ctl:
if (m_selectedCharacter == e_mama) { if (m_selectedCharacter == e_mama) {
m_radio.Stop(); m_radio.Stop();
BackgroundAudioManager()->Stop(); BackgroundAudioManager()->Stop();
PlayAction(c_mamaMovie); PlayAction(InfomainScript::c_Mama_All_Movie);
m_unk0x1d4++; m_unk0x1d4++;
} }
break; break;
case c_papaCtl: case InfomainScript::c_Papa_Ctl:
if (m_selectedCharacter == e_papa) { if (m_selectedCharacter == e_papa) {
m_radio.Stop(); m_radio.Stop();
BackgroundAudioManager()->Stop(); BackgroundAudioManager()->Stop();
PlayAction(c_papaMovie); PlayAction(InfomainScript::c_Papa_All_Movie);
m_unk0x1d4++; m_unk0x1d4++;
} }
break; break;
case c_nickCtl: case InfomainScript::c_Nick_Ctl:
if (m_selectedCharacter == e_nick) { if (m_selectedCharacter == e_nick) {
m_radio.Stop(); m_radio.Stop();
BackgroundAudioManager()->Stop(); BackgroundAudioManager()->Stop();
PlayAction(c_nickMovie); PlayAction(InfomainScript::c_Nick_All_Movie);
m_unk0x1d4++; m_unk0x1d4++;
} }
break; break;
case c_lauraCtl: case InfomainScript::c_Laura_Ctl:
if (m_selectedCharacter == e_laura) { if (m_selectedCharacter == e_laura) {
m_radio.Stop(); m_radio.Stop();
BackgroundAudioManager()->Stop(); BackgroundAudioManager()->Stop();
PlayAction(c_lauraMovie); PlayAction(InfomainScript::c_Laura_All_Movie);
m_unk0x1d4++; m_unk0x1d4++;
} }
break; break;
@ -740,19 +742,19 @@ MxU8 Infocenter::HandleButtonUp(MxS32 p_x, MxS32 p_y)
switch (m_selectedCharacter) { switch (m_selectedCharacter) {
case e_pepper: case e_pepper:
PlayAction(c_pepperCharacterSelect); PlayAction(InfomainScript::c_avo901in_RunAnim);
break; break;
case e_mama: case e_mama:
PlayAction(c_mamaCharacterSelect); PlayAction(InfomainScript::c_avo902in_RunAnim);
break; break;
case e_papa: case e_papa:
PlayAction(c_papaCharacterSelect); PlayAction(InfomainScript::c_avo903in_RunAnim);
break; break;
case e_nick: case e_nick:
PlayAction(c_nickCharacterSelect); PlayAction(InfomainScript::c_avo904in_RunAnim);
break; break;
case e_laura: case e_laura:
PlayAction(c_lauraCharacterSelect); PlayAction(InfomainScript::c_avo905in_RunAnim);
break; break;
} }
break; break;
@ -800,39 +802,39 @@ MxU8 Infocenter::HandleButtonUp(MxS32 p_x, MxS32 p_y)
m_unk0x11c = NULL; m_unk0x11c = NULL;
if (m_infocenterState->GetUnknown0x74() == 5) { if (m_infocenterState->GetUnknown0x74() == 5) {
InfomainScript dialogueToPlay; InfomainScript::Script dialogueToPlay;
if (GameState()->GetCurrentAct() == LegoGameState::e_act1) { if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
if (!m_infocenterState->HasRegistered()) { if (!m_infocenterState->HasRegistered()) {
m_infocenterState->SetUnknown0x74(2); m_infocenterState->SetUnknown0x74(2);
m_transitionDestination = LegoGameState::e_noArea; m_transitionDestination = LegoGameState::e_noArea;
dialogueToPlay = c_registerToContinueDialogue; dialogueToPlay = InfomainScript::c_iic007in_PlayWav;
} }
else { else {
switch (m_selectedCharacter) { switch (m_selectedCharacter) {
case e_pepper: case e_pepper:
dialogueToPlay = c_pepperCharacterSelect; dialogueToPlay = InfomainScript::c_avo901in_RunAnim;
GameState()->SetActorId(m_selectedCharacter); GameState()->SetActorId(m_selectedCharacter);
break; break;
case e_mama: case e_mama:
dialogueToPlay = c_mamaCharacterSelect; dialogueToPlay = InfomainScript::c_avo902in_RunAnim;
GameState()->SetActorId(m_selectedCharacter); GameState()->SetActorId(m_selectedCharacter);
break; break;
case e_papa: case e_papa:
dialogueToPlay = c_papaCharacterSelect; dialogueToPlay = InfomainScript::c_avo903in_RunAnim;
GameState()->SetActorId(m_selectedCharacter); GameState()->SetActorId(m_selectedCharacter);
break; break;
case e_nick: case e_nick:
dialogueToPlay = c_nickCharacterSelect; dialogueToPlay = InfomainScript::c_avo904in_RunAnim;
GameState()->SetActorId(m_selectedCharacter); GameState()->SetActorId(m_selectedCharacter);
break; break;
case e_laura: case e_laura:
dialogueToPlay = c_lauraCharacterSelect; dialogueToPlay = InfomainScript::c_avo905in_RunAnim;
GameState()->SetActorId(m_selectedCharacter); GameState()->SetActorId(m_selectedCharacter);
break; break;
default: default:
dialogueToPlay = dialogueToPlay =
(InfomainScript) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct()).Next(); (InfomainScript::Script) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct()).Next();
break; break;
} }
@ -842,7 +844,7 @@ MxU8 Infocenter::HandleButtonUp(MxS32 p_x, MxS32 p_y)
} }
else { else {
dialogueToPlay = dialogueToPlay =
(InfomainScript) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct()).Next(); (InfomainScript::Script) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct()).Next();
} }
PlayAction(dialogueToPlay); PlayAction(dialogueToPlay);
@ -861,14 +863,14 @@ MxU8 Infocenter::HandleClick(LegoControlManagerEvent& p_param)
if (p_param.GetUnknown0x28() == 1) { if (p_param.GetUnknown0x28() == 1) {
m_infoManDialogueTimer = 0; m_infoManDialogueTimer = 0;
InfomainScript actionToPlay = c_noInfomain; InfomainScript::Script actionToPlay = InfomainScript::c_noneInfomain;
StopCurrentAction(); StopCurrentAction();
InfomainScript characterBitmap = c_noInfomain; InfomainScript::Script characterBitmap = InfomainScript::c_noneInfomain;
LegoGameState* state = GameState(); LegoGameState* state = GameState();
switch (p_param.GetClickedObjectId()) { switch (p_param.GetClickedObjectId()) {
case c_leftArrowCtl: case InfomainScript::c_LeftArrow_Ctl:
m_infocenterState->SetUnknown0x74(14); m_infocenterState->SetUnknown0x74(14);
StopCurrentAction(); StopCurrentAction();
@ -879,11 +881,11 @@ MxU8 Infocenter::HandleClick(LegoControlManagerEvent& p_param)
} }
else { else {
MxU32 objectId = m_infocenterState->GetBricksterDialogue().Next(); MxU32 objectId = m_infocenterState->GetBricksterDialogue().Next();
PlayAction((InfomainScript) objectId); PlayAction((InfomainScript::Script) objectId);
} }
break; break;
case c_rightArrowCtl: case InfomainScript::c_RightArrow_Ctl:
m_infocenterState->SetUnknown0x74(14); m_infocenterState->SetUnknown0x74(14);
StopCurrentAction(); StopCurrentAction();
@ -894,47 +896,47 @@ MxU8 Infocenter::HandleClick(LegoControlManagerEvent& p_param)
} }
else { else {
MxU32 objectId = m_infocenterState->GetBricksterDialogue().Next(); MxU32 objectId = m_infocenterState->GetBricksterDialogue().Next();
PlayAction((InfomainScript) objectId); PlayAction((InfomainScript::Script) objectId);
} }
break; break;
case c_infoCtl: case InfomainScript::c_Info_Ctl:
actionToPlay = c_infoCtlDescription; actionToPlay = InfomainScript::c_iic007ra_PlayWav;
m_radio.Stop(); m_radio.Stop();
break; break;
case c_doorCtl: case InfomainScript::c_Door_Ctl:
if (m_infocenterState->GetUnknown0x74() != 8) { if (m_infocenterState->GetUnknown0x74() != 8) {
actionToPlay = c_exitConfirmationDialogue; actionToPlay = InfomainScript::c_iic043in_RunAnim;
m_radio.Stop(); m_radio.Stop();
m_infocenterState->SetUnknown0x74(8); m_infocenterState->SetUnknown0x74(8);
} }
break; break;
case c_boatCtl: case InfomainScript::c_Boat_Ctl:
actionToPlay = c_boatCtlDescription; actionToPlay = InfomainScript::c_ijs002ra_PlayWav;
m_radio.Stop(); m_radio.Stop();
break; break;
case c_raceCtl: case InfomainScript::c_Race_Ctl:
actionToPlay = c_raceCtlDescription; actionToPlay = InfomainScript::c_irt001ra_PlayWav;
m_radio.Stop(); m_radio.Stop();
break; break;
case c_pizzaCtl: case InfomainScript::c_Pizza_Ctl:
actionToPlay = c_pizzaCtlDescription; actionToPlay = InfomainScript::c_ipz006ra_PlayWav;
m_radio.Stop(); m_radio.Stop();
break; break;
case c_gasCtl: case InfomainScript::c_Gas_Ctl:
actionToPlay = c_gasCtlDescription; actionToPlay = InfomainScript::c_igs004ra_PlayWav;
m_radio.Stop(); m_radio.Stop();
break; break;
case c_medCtl: case InfomainScript::c_Med_Ctl:
actionToPlay = c_medCtlDescription; actionToPlay = InfomainScript::c_iho003ra_PlayWav;
m_radio.Stop(); m_radio.Stop();
break; break;
case c_copCtl: case InfomainScript::c_Cop_Ctl:
actionToPlay = c_copCtlDescription; actionToPlay = InfomainScript::c_ips005ra_PlayWav;
m_radio.Stop(); m_radio.Stop();
break; break;
case c_bigInfoCtl: case InfomainScript::c_BigInfo_Ctl:
switch (state->GetCurrentAct()) { switch (state->GetCurrentAct()) {
case LegoGameState::e_act1: case LegoGameState::e_act1:
switch (state->GetPreviousArea()) { switch (state->GetPreviousArea()) {
@ -944,7 +946,7 @@ MxU8 Infocenter::HandleClick(LegoControlManagerEvent& p_param)
m_infocenterState->SetUnknown0x74(5); m_infocenterState->SetUnknown0x74(5);
m_transitionDestination = state->GetPreviousArea(); m_transitionDestination = state->GetPreviousArea();
actionToPlay = actionToPlay =
(InfomainScript) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct()).Next(); (InfomainScript::Script) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct()).Next();
m_radio.Stop(); m_radio.Stop();
InputManager()->DisableInputProcessing(); InputManager()->DisableInputProcessing();
InputManager()->SetUnknown336(TRUE); InputManager()->SetUnknown336(TRUE);
@ -955,14 +957,14 @@ MxU8 Infocenter::HandleClick(LegoControlManagerEvent& p_param)
m_infocenterState->SetUnknown0x74(5); m_infocenterState->SetUnknown0x74(5);
m_transitionDestination = state->GetPreviousArea(); m_transitionDestination = state->GetPreviousArea();
actionToPlay = actionToPlay =
(InfomainScript) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct()) (InfomainScript::Script) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct())
.Next(); .Next();
m_radio.Stop(); m_radio.Stop();
InputManager()->DisableInputProcessing(); InputManager()->DisableInputProcessing();
InputManager()->SetUnknown336(TRUE); InputManager()->SetUnknown336(TRUE);
} }
else { else {
PlayAction(c_registerToContinueDialogue); PlayAction(InfomainScript::c_iic007in_PlayWav);
m_infocenterState->SetUnknown0x74(2); m_infocenterState->SetUnknown0x74(2);
} }
} }
@ -973,7 +975,7 @@ MxU8 Infocenter::HandleClick(LegoControlManagerEvent& p_param)
m_infocenterState->SetUnknown0x74(5); m_infocenterState->SetUnknown0x74(5);
m_transitionDestination = LegoGameState::e_act2main; m_transitionDestination = LegoGameState::e_act2main;
actionToPlay = actionToPlay =
(InfomainScript) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct()).Next(); (InfomainScript::Script) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct()).Next();
InputManager()->DisableInputProcessing(); InputManager()->DisableInputProcessing();
InputManager()->SetUnknown336(TRUE); InputManager()->SetUnknown336(TRUE);
break; break;
@ -981,47 +983,47 @@ MxU8 Infocenter::HandleClick(LegoControlManagerEvent& p_param)
m_infocenterState->SetUnknown0x74(5); m_infocenterState->SetUnknown0x74(5);
m_transitionDestination = LegoGameState::e_act3script; m_transitionDestination = LegoGameState::e_act3script;
actionToPlay = actionToPlay =
(InfomainScript) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct()).Next(); (InfomainScript::Script) m_infocenterState->GetLeaveDialogue(GameState()->GetCurrentAct()).Next();
InputManager()->DisableInputProcessing(); InputManager()->DisableInputProcessing();
InputManager()->SetUnknown336(TRUE); InputManager()->SetUnknown336(TRUE);
break; break;
} }
break; break;
case c_bookCtl: case InfomainScript::c_Book_Ctl:
m_transitionDestination = LegoGameState::e_regbook; m_transitionDestination = LegoGameState::e_regbook;
m_infocenterState->SetUnknown0x74(4); m_infocenterState->SetUnknown0x74(4);
actionToPlay = GameState()->GetCurrentAct() != LegoGameState::e_act1 ? c_goToRegBookRed : c_goToRegBook; actionToPlay = GameState()->GetCurrentAct() != LegoGameState::e_act1 ? InfomainScript::c_GoTo_RegBook_Red : InfomainScript::c_GoTo_RegBook;
m_radio.Stop(); m_radio.Stop();
GameState()->SetUnknown0x42c(GameState()->GetPreviousArea()); GameState()->SetUnknown0x42c(GameState()->GetPreviousArea());
InputManager()->DisableInputProcessing(); InputManager()->DisableInputProcessing();
break; break;
case c_mamaCtl: case InfomainScript::c_Mama_Ctl:
characterBitmap = c_mamaSelected; characterBitmap = InfomainScript::c_MamaHot_Bitmap;
UpdateFrameHot(FALSE); UpdateFrameHot(FALSE);
break; break;
case c_papaCtl: case InfomainScript::c_Papa_Ctl:
characterBitmap = c_papaSelected; characterBitmap = InfomainScript::c_PapaHot_Bitmap;
UpdateFrameHot(FALSE); UpdateFrameHot(FALSE);
break; break;
case c_pepperCtl: case InfomainScript::c_Pepper_Ctl:
characterBitmap = c_pepperSelected; characterBitmap = InfomainScript::c_PepperHot_Bitmap;
UpdateFrameHot(FALSE); UpdateFrameHot(FALSE);
break; break;
case c_nickCtl: case InfomainScript::c_Nick_Ctl:
characterBitmap = c_nickSelected; characterBitmap = InfomainScript::c_NickHot_Bitmap;
UpdateFrameHot(FALSE); UpdateFrameHot(FALSE);
break; break;
case c_lauraCtl: case InfomainScript::c_Laura_Ctl:
characterBitmap = c_lauraSelected; characterBitmap = InfomainScript::c_LauraHot_Bitmap;
UpdateFrameHot(FALSE); UpdateFrameHot(FALSE);
break; break;
} }
if (actionToPlay != c_noInfomain) { if (actionToPlay != InfomainScript::c_noneInfomain) {
PlayAction(actionToPlay); PlayAction(actionToPlay);
} }
if (characterBitmap != c_noInfomain) { if (characterBitmap != InfomainScript::c_noneInfomain) {
m_unk0x11c = (MxStillPresenter*) Find(m_atom, characterBitmap); m_unk0x11c = (MxStillPresenter*) Find(m_atom, characterBitmap);
} }
} }
@ -1039,7 +1041,7 @@ MxLong Infocenter::HandleNotification0(MxNotificationParam& p_param)
if (m_infocenterState->GetUnknown0x74() == 8) { if (m_infocenterState->GetUnknown0x74() == 8) {
m_infoManDialogueTimer = 0; m_infoManDialogueTimer = 0;
StopCutscene(); StopCutscene();
PlayAction(c_exitConfirmationDialogue); PlayAction(InfomainScript::c_iic043in_RunAnim);
} }
} }
else if (sender->IsA("MxEntity") && m_infocenterState->GetUnknown0x74() != 5 && m_infocenterState->GetUnknown0x74() != 12) { else if (sender->IsA("MxEntity") && m_infocenterState->GetUnknown0x74() != 5 && m_infocenterState->GetUnknown0x74() != 12) {
@ -1047,12 +1049,12 @@ MxLong Infocenter::HandleNotification0(MxNotificationParam& p_param)
case 5: { case 5: {
m_infoManDialogueTimer = 0; m_infoManDialogueTimer = 0;
InfomainScript objectId; InfomainScript::Script objectId;
if (GameState()->GetCurrentAct() != LegoGameState::e_act1) { if (GameState()->GetCurrentAct() != LegoGameState::e_act1) {
objectId = (InfomainScript) m_infocenterState->GetExitDialogueAct23().Next(); objectId = (InfomainScript::Script) m_infocenterState->GetExitDialogueAct23().Next();
} }
else { else {
objectId = (InfomainScript) m_infocenterState->GetExitDialogueAct1().Next(); objectId = (InfomainScript::Script) m_infocenterState->GetExitDialogueAct1().Next();
} }
PlayAction(objectId); PlayAction(objectId);
@ -1066,7 +1068,7 @@ MxLong Infocenter::HandleNotification0(MxNotificationParam& p_param)
SetROIUnknown0x0c(g_object2x4red, 0); SetROIUnknown0x0c(g_object2x4red, 0);
SetROIUnknown0x0c(g_object2x4grn, 0); SetROIUnknown0x0c(g_object2x4grn, 0);
m_infocenterState->SetUnknown0x74(2); m_infocenterState->SetUnknown0x74(2);
PlayAction(c_infomanSneeze); PlayAction(InfomainScript::c_iicb28in_RunAnim);
return 1; return 1;
} }
case 7: case 7:
@ -1076,7 +1078,7 @@ MxLong Infocenter::HandleNotification0(MxNotificationParam& p_param)
} }
m_infocenterState->SetUnknown0x74(12); m_infocenterState->SetUnknown0x74(12);
PlayAction(c_exitGameDialogue); PlayAction(InfomainScript::c_iic046in_RunAnim);
InputManager()->DisableInputProcessing(); InputManager()->DisableInputProcessing();
InputManager()->SetUnknown336(TRUE); InputManager()->SetUnknown336(TRUE);
return 1; return 1;
@ -1085,12 +1087,12 @@ MxLong Infocenter::HandleNotification0(MxNotificationParam& p_param)
} }
else { else {
if (sender->IsA("Radio") && m_radio.GetState()->IsActive()) { if (sender->IsA("Radio") && m_radio.GetState()->IsActive()) {
if (m_currentInfomainScript == c_mamaMovie || m_currentInfomainScript == c_papaMovie || if (m_currentInfomainScript == InfomainScript::c_Mama_All_Movie || m_currentInfomainScript == InfomainScript::c_Papa_All_Movie ||
m_currentInfomainScript == c_pepperMovie || m_currentInfomainScript == c_nickMovie || m_currentInfomainScript == InfomainScript::c_Pepper_All_Movie || m_currentInfomainScript == InfomainScript::c_Nick_All_Movie ||
m_currentInfomainScript == c_lauraMovie || m_currentInfomainScript == c_infoCtlDescription || m_currentInfomainScript == InfomainScript::c_Laura_All_Movie || m_currentInfomainScript == InfomainScript::c_iic007ra_PlayWav ||
m_currentInfomainScript == c_boatCtlDescription || m_currentInfomainScript == c_raceCtlDescription || m_currentInfomainScript == InfomainScript::c_ijs002ra_PlayWav || m_currentInfomainScript == InfomainScript::c_irt001ra_PlayWav ||
m_currentInfomainScript == c_pizzaCtlDescription || m_currentInfomainScript == c_gasCtlDescription || m_currentInfomainScript == InfomainScript::c_ipz006ra_PlayWav || m_currentInfomainScript == InfomainScript::c_igs004ra_PlayWav ||
m_currentInfomainScript == c_medCtlDescription || m_currentInfomainScript == c_copCtlDescription) { m_currentInfomainScript == InfomainScript::c_iho003ra_PlayWav || m_currentInfomainScript == InfomainScript::c_ips005ra_PlayWav) {
StopCurrentAction(); StopCurrentAction();
} }
} }
@ -1124,7 +1126,7 @@ MxResult Infocenter::Tickle()
} }
if (m_infoManDialogueTimer != 0 && (m_infoManDialogueTimer += 100) > 25000) { if (m_infoManDialogueTimer != 0 && (m_infoManDialogueTimer += 100) > 25000) {
PlayAction(c_clickOnInfomanDialogue); PlayAction(InfomainScript::c_iicx17in_RunAnim);
m_infoManDialogueTimer = 0; m_infoManDialogueTimer = 0;
} }
@ -1382,7 +1384,7 @@ void Infocenter::StartCredits()
VideoManager()->FUN_1007c520(); VideoManager()->FUN_1007c520();
GetViewManager()->RemoveAll(NULL); GetViewManager()->RemoveAll(NULL);
InvokeAction(Extra::e_opendisk, *g_creditsScript, c_unk499, NULL); InvokeAction(Extra::e_opendisk, *g_creditsScript, CreditsScript::c_LegoCredits, NULL);
SetAppCursor(0); SetAppCursor(0);
} }
@ -1390,14 +1392,14 @@ void Infocenter::StartCredits()
void Infocenter::StopCredits() void Infocenter::StopCredits()
{ {
MxDSAction action; MxDSAction action;
action.SetObjectId(499); action.SetObjectId(CreditsScript::c_LegoCredits);
action.SetAtomId(*g_creditsScript); action.SetAtomId(*g_creditsScript);
action.SetUnknown24(-2); action.SetUnknown24(-2);
DeleteObject(action); DeleteObject(action);
} }
// FUNCTION: LEGO1 0x10071300 // FUNCTION: LEGO1 0x10071300
void Infocenter::PlayAction(InfomainScript p_objectId) void Infocenter::PlayAction(InfomainScript::Script p_objectId)
{ {
MxDSAction action; MxDSAction action;
action.SetObjectId(p_objectId); action.SetObjectId(p_objectId);
@ -1412,13 +1414,13 @@ void Infocenter::PlayAction(InfomainScript p_objectId)
// FUNCTION: LEGO1 0x100713d0 // FUNCTION: LEGO1 0x100713d0
void Infocenter::StopCurrentAction() void Infocenter::StopCurrentAction()
{ {
if (m_currentInfomainScript != c_noInfomain) { if (m_currentInfomainScript != InfomainScript::c_noneInfomain) {
MxDSAction action; MxDSAction action;
action.SetObjectId(m_currentInfomainScript); action.SetObjectId(m_currentInfomainScript);
action.SetAtomId(*g_infomainScript); action.SetAtomId(*g_infomainScript);
action.SetUnknown24(-2); action.SetUnknown24(-2);
DeleteObject(action); DeleteObject(action);
m_currentInfomainScript = c_noInfomain; m_currentInfomainScript = InfomainScript::c_noneInfomain;
} }
} }
@ -1426,7 +1428,7 @@ void Infocenter::StopCurrentAction()
void Infocenter::PlayBookAnimation() void Infocenter::PlayBookAnimation()
{ {
MxDSAction action; MxDSAction action;
action.SetObjectId(c_bookWig); action.SetObjectId(SndanimScript::c_BookWig_Flic);
action.SetAtomId(*g_sndAnimScript); action.SetAtomId(*g_sndAnimScript);
Start(&action); Start(&action);
} }
@ -1435,7 +1437,7 @@ void Infocenter::PlayBookAnimation()
void Infocenter::StopBookAnimation() void Infocenter::StopBookAnimation()
{ {
MxDSAction action; MxDSAction action;
action.SetObjectId(c_bookWig); action.SetObjectId(SndanimScript::c_BookWig_Flic);
action.SetAtomId(*g_sndAnimScript); action.SetAtomId(*g_sndAnimScript);
action.SetUnknown24(-2); action.SetUnknown24(-2);
DeleteObject(action); DeleteObject(action);