mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 16:34:06 +00:00
Implement/match Infocenter::Reset (#532)
* Implement Infocenter::Reset * Move code * Move function * Fix bug * Fix another bug
This commit is contained in:

committed by
GitHub

parent
a2c1bd66b3
commit
03423b2ffa
@@ -33,6 +33,15 @@ public:
|
|||||||
e_goodEndMovie
|
e_goodEndMovie
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum Character {
|
||||||
|
e_noCharacter = 0,
|
||||||
|
e_pepper,
|
||||||
|
e_mama,
|
||||||
|
e_papa,
|
||||||
|
e_nick,
|
||||||
|
e_laura
|
||||||
|
};
|
||||||
|
|
||||||
enum InfomainScript {
|
enum InfomainScript {
|
||||||
c_noInfomain = -1,
|
c_noInfomain = -1,
|
||||||
|
|
||||||
@@ -135,7 +144,7 @@ public:
|
|||||||
|
|
||||||
c_gasCtlDescription = 555,
|
c_gasCtlDescription = 555,
|
||||||
c_medCtlDescription = 556,
|
c_medCtlDescription = 556,
|
||||||
c_unk557 = 557,
|
c_infoCtlDescription = 557,
|
||||||
c_boatCtlDescription = 558,
|
c_boatCtlDescription = 558,
|
||||||
c_copCtlDescription = 559,
|
c_copCtlDescription = 559,
|
||||||
c_pizzaCtlDescription = 560,
|
c_pizzaCtlDescription = 560,
|
||||||
@@ -204,7 +213,7 @@ private:
|
|||||||
MxLong HandleNotification0(MxNotificationParam& p_param);
|
MxLong HandleNotification0(MxNotificationParam& p_param);
|
||||||
|
|
||||||
void UpdateFrameHot(MxBool p_display);
|
void UpdateFrameHot(MxBool p_display);
|
||||||
void FUN_10070e90();
|
void Reset();
|
||||||
|
|
||||||
void PlayCutscene(Cutscene p_entityId, MxBool p_scale);
|
void PlayCutscene(Cutscene p_entityId, MxBool p_scale);
|
||||||
void StopCutscene();
|
void StopCutscene();
|
||||||
@@ -221,7 +230,7 @@ private:
|
|||||||
void StopBookAnimation();
|
void StopBookAnimation();
|
||||||
|
|
||||||
InfomainScript m_currentInfomainScript; // 0xf8
|
InfomainScript m_currentInfomainScript; // 0xf8
|
||||||
MxS16 m_unk0xfc; // 0xfc
|
MxS16 m_selectedCharacter; // 0xfc
|
||||||
InfocenterState* m_infocenterState; // 0x100
|
InfocenterState* m_infocenterState; // 0x100
|
||||||
undefined4 m_transitionDestination; // 0x104
|
undefined4 m_transitionDestination; // 0x104
|
||||||
Cutscene m_currentCutscene; // 0x108
|
Cutscene m_currentCutscene; // 0x108
|
||||||
|
@@ -23,6 +23,7 @@ public:
|
|||||||
|
|
||||||
void FUN_1002fa00();
|
void FUN_1002fa00();
|
||||||
void FUN_1002fb30();
|
void FUN_1002fb30();
|
||||||
|
void FUN_10030590();
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x1002f940
|
// SYNTHETIC: LEGO1 0x1002f940
|
||||||
// LegoBuildingManager::`scalar deleting destructor'
|
// LegoBuildingManager::`scalar deleting destructor'
|
||||||
|
@@ -46,8 +46,9 @@ public:
|
|||||||
inline void SetCurrentArea(MxU32 p_currentArea) { m_currentArea = p_currentArea; }
|
inline void SetCurrentArea(MxU32 p_currentArea) { m_currentArea = p_currentArea; }
|
||||||
inline void SetPreviousArea(MxU32 p_previousArea) { m_previousArea = p_previousArea; }
|
inline void SetPreviousArea(MxU32 p_previousArea) { m_previousArea = p_previousArea; }
|
||||||
inline void SetUnknown0x0c(MxU8 p_unk0x0c) { m_unk0x0c = p_unk0x0c; }
|
inline void SetUnknown0x0c(MxU8 p_unk0x0c) { m_unk0x0c = p_unk0x0c; }
|
||||||
|
inline void SetUnknown0x42c(undefined4 p_unk0x42c) { m_unk0x42c = p_unk0x42c; }
|
||||||
|
|
||||||
void SetSomeEnumState(undefined4 p_state);
|
void FUN_1003cea0(undefined4 p_state);
|
||||||
void FUN_1003ceb0();
|
void FUN_1003ceb0();
|
||||||
void FUN_10039780(MxU8);
|
void FUN_10039780(MxU8);
|
||||||
void FUN_10039940();
|
void FUN_10039940();
|
||||||
|
@@ -22,6 +22,7 @@ public:
|
|||||||
|
|
||||||
void FUN_10026360(undefined4 p_world);
|
void FUN_10026360(undefined4 p_world);
|
||||||
void FUN_100263a0(undefined4 p_und);
|
void FUN_100263a0(undefined4 p_und);
|
||||||
|
void FUN_10027120();
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100262a0
|
// SYNTHETIC: LEGO1 0x100262a0
|
||||||
// LegoPlantManager::`scalar deleting destructor'
|
// LegoPlantManager::`scalar deleting destructor'
|
||||||
|
@@ -37,6 +37,7 @@ class LegoUnkSaveDataWriter {
|
|||||||
public:
|
public:
|
||||||
MxResult WriteSaveData3(LegoStorage* p_stream);
|
MxResult WriteSaveData3(LegoStorage* p_stream);
|
||||||
AutoROI* FUN_10083500(undefined4, undefined4);
|
AutoROI* FUN_10083500(undefined4, undefined4);
|
||||||
|
void FUN_100832a0();
|
||||||
void FUN_10083db0(LegoROI* p_roi);
|
void FUN_10083db0(LegoROI* p_roi);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -45,3 +45,9 @@ MxResult LegoBuildingManager::Tickle()
|
|||||||
// TODO
|
// TODO
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x10030590
|
||||||
|
void LegoBuildingManager::FUN_10030590()
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
@@ -603,7 +603,7 @@ void LegoGameState::SerializeScoreHistory(MxS16 p_flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1003cea0
|
// FUNCTION: LEGO1 0x1003cea0
|
||||||
void LegoGameState::SetSomeEnumState(undefined4 p_state)
|
void LegoGameState::FUN_1003cea0(undefined4 p_state)
|
||||||
{
|
{
|
||||||
m_unk0x10 = p_state;
|
m_unk0x10 = p_state;
|
||||||
}
|
}
|
||||||
|
@@ -37,3 +37,9 @@ MxResult LegoPlantManager::Tickle()
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x10027120
|
||||||
|
void LegoPlantManager::FUN_10027120()
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
@@ -8,6 +8,12 @@ DECOMP_SIZE_ASSERT(LegoSaveDataEntry3, 0x108);
|
|||||||
// GLOBAL: LEGO1 0x10104f20
|
// GLOBAL: LEGO1 0x10104f20
|
||||||
LegoSaveDataEntry3 g_saveData3[66];
|
LegoSaveDataEntry3 g_saveData3[66];
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x100832a0
|
||||||
|
void LegoUnkSaveDataWriter::FUN_100832a0()
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10083310
|
// FUNCTION: LEGO1 0x10083310
|
||||||
MxResult LegoUnkSaveDataWriter::WriteSaveData3(LegoStorage* p_stream)
|
MxResult LegoUnkSaveDataWriter::WriteSaveData3(LegoStorage* p_stream)
|
||||||
{
|
{
|
||||||
|
@@ -1,11 +1,16 @@
|
|||||||
#include "infocenter.h"
|
#include "infocenter.h"
|
||||||
|
|
||||||
|
#include "helicopterstate.h"
|
||||||
#include "infocenterstate.h"
|
#include "infocenterstate.h"
|
||||||
#include "jukebox.h"
|
#include "jukebox.h"
|
||||||
|
#include "legoanimationmanager.h"
|
||||||
|
#include "legobuildingmanager.h"
|
||||||
#include "legocontrolmanager.h"
|
#include "legocontrolmanager.h"
|
||||||
#include "legogamestate.h"
|
#include "legogamestate.h"
|
||||||
#include "legoinputmanager.h"
|
#include "legoinputmanager.h"
|
||||||
#include "legoomni.h"
|
#include "legoomni.h"
|
||||||
|
#include "legoplantmanager.h"
|
||||||
|
#include "legounksavedatawriter.h"
|
||||||
#include "legoutil.h"
|
#include "legoutil.h"
|
||||||
#include "legovideomanager.h"
|
#include "legovideomanager.h"
|
||||||
#include "mxactionnotificationparam.h"
|
#include "mxactionnotificationparam.h"
|
||||||
@@ -28,7 +33,7 @@ const char* g_object2x4grn = "2x4grn";
|
|||||||
// FUNCTION: LEGO1 0x1006ea20
|
// FUNCTION: LEGO1 0x1006ea20
|
||||||
Infocenter::Infocenter()
|
Infocenter::Infocenter()
|
||||||
{
|
{
|
||||||
m_unk0xfc = 0;
|
m_selectedCharacter = e_noCharacter;
|
||||||
m_unk0x11c = NULL;
|
m_unk0x11c = NULL;
|
||||||
m_infocenterState = NULL;
|
m_infocenterState = NULL;
|
||||||
m_frameHotBitmap = NULL;
|
m_frameHotBitmap = NULL;
|
||||||
@@ -194,22 +199,22 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param)
|
|||||||
|
|
||||||
if (!m_unk0x1d4) {
|
if (!m_unk0x1d4) {
|
||||||
PlayMusic(JukeBox::e_informationCenter);
|
PlayMusic(JukeBox::e_informationCenter);
|
||||||
GameState()->FUN_10039780(m_unk0xfc);
|
GameState()->FUN_10039780(m_selectedCharacter);
|
||||||
|
|
||||||
switch (m_unk0xfc) {
|
switch (m_selectedCharacter) {
|
||||||
case 1:
|
case e_pepper:
|
||||||
PlayAction(c_pepperCharacterSelect);
|
PlayAction(c_pepperCharacterSelect);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case e_mama:
|
||||||
PlayAction(c_mamaCharacterSelect);
|
PlayAction(c_mamaCharacterSelect);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case e_papa:
|
||||||
PlayAction(c_papaCharacterSelect);
|
PlayAction(c_papaCharacterSelect);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case e_nick:
|
||||||
PlayAction(c_nickCharacterSelect);
|
PlayAction(c_nickCharacterSelect);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case e_laura:
|
||||||
PlayAction(c_lauraCharacterSelect);
|
PlayAction(c_lauraCharacterSelect);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -295,8 +300,8 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param)
|
|||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
if (action->GetObjectId() == m_currentInfomainScript) {
|
if (action->GetObjectId() == m_currentInfomainScript) {
|
||||||
if (GameState()->GetUnknown10() != 2 && m_unk0xfc != 0) {
|
if (GameState()->GetUnknown10() != 2 && m_selectedCharacter != e_noCharacter) {
|
||||||
GameState()->FUN_10039780(m_unk0xfc);
|
GameState()->FUN_10039780(m_selectedCharacter);
|
||||||
}
|
}
|
||||||
TransitionManager()->StartTransition(MxTransitionManager::e_pixelation, 50, FALSE, FALSE);
|
TransitionManager()->StartTransition(MxTransitionManager::e_pixelation, 50, FALSE, FALSE);
|
||||||
m_infocenterState->SetUnknown0x74(14);
|
m_infocenterState->SetUnknown0x74(14);
|
||||||
@@ -402,7 +407,6 @@ void Infocenter::InitializeBitmaps()
|
|||||||
((MxPresenter*) Find(m_atom, c_gasCtl))->Enable(TRUE);
|
((MxPresenter*) Find(m_atom, c_gasCtl))->Enable(TRUE);
|
||||||
((MxPresenter*) Find(m_atom, c_medCtl))->Enable(TRUE);
|
((MxPresenter*) Find(m_atom, c_medCtl))->Enable(TRUE);
|
||||||
((MxPresenter*) Find(m_atom, c_copCtl))->Enable(TRUE);
|
((MxPresenter*) Find(m_atom, c_copCtl))->Enable(TRUE);
|
||||||
|
|
||||||
((MxPresenter*) Find(m_atom, c_mamaCtl))->Enable(TRUE);
|
((MxPresenter*) Find(m_atom, c_mamaCtl))->Enable(TRUE);
|
||||||
((MxPresenter*) Find(m_atom, c_papaCtl))->Enable(TRUE);
|
((MxPresenter*) Find(m_atom, c_papaCtl))->Enable(TRUE);
|
||||||
((MxPresenter*) Find(m_atom, c_pepperCtl))->Enable(TRUE);
|
((MxPresenter*) Find(m_atom, c_pepperCtl))->Enable(TRUE);
|
||||||
@@ -543,20 +547,20 @@ 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:
|
||||||
|
m_selectedCharacter = e_pepper;
|
||||||
|
break;
|
||||||
case c_mamaSelected:
|
case c_mamaSelected:
|
||||||
m_unk0xfc = 2;
|
m_selectedCharacter = e_mama;
|
||||||
break;
|
break;
|
||||||
case c_papaSelected:
|
case c_papaSelected:
|
||||||
m_unk0xfc = 3;
|
m_selectedCharacter = e_papa;
|
||||||
break;
|
|
||||||
case c_pepperSelected:
|
|
||||||
m_unk0xfc = 1;
|
|
||||||
break;
|
break;
|
||||||
case c_nickSelected:
|
case c_nickSelected:
|
||||||
m_unk0xfc = 4;
|
m_selectedCharacter = e_nick;
|
||||||
break;
|
break;
|
||||||
case c_lauraSelected:
|
case c_lauraSelected:
|
||||||
m_unk0xfc = 5;
|
m_selectedCharacter = e_laura;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -564,8 +568,16 @@ 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:
|
||||||
|
if (m_selectedCharacter == e_pepper) {
|
||||||
|
m_radio.Stop();
|
||||||
|
BackgroundAudioManager()->Stop();
|
||||||
|
PlayAction(c_pepperMovie);
|
||||||
|
m_unk0x1d4++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case c_mamaCtl:
|
case c_mamaCtl:
|
||||||
if (m_unk0xfc == 2) {
|
if (m_selectedCharacter == e_mama) {
|
||||||
m_radio.Stop();
|
m_radio.Stop();
|
||||||
BackgroundAudioManager()->Stop();
|
BackgroundAudioManager()->Stop();
|
||||||
PlayAction(c_mamaMovie);
|
PlayAction(c_mamaMovie);
|
||||||
@@ -573,23 +585,15 @@ MxU8 Infocenter::HandleButtonUp(MxS32 p_x, MxS32 p_y)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case c_papaCtl:
|
case c_papaCtl:
|
||||||
if (m_unk0xfc == 3) {
|
if (m_selectedCharacter == e_papa) {
|
||||||
m_radio.Stop();
|
m_radio.Stop();
|
||||||
BackgroundAudioManager()->Stop();
|
BackgroundAudioManager()->Stop();
|
||||||
PlayAction(c_papaMovie);
|
PlayAction(c_papaMovie);
|
||||||
m_unk0x1d4++;
|
m_unk0x1d4++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case c_pepperCtl:
|
|
||||||
if (m_unk0xfc == 1) {
|
|
||||||
m_radio.Stop();
|
|
||||||
BackgroundAudioManager()->Stop();
|
|
||||||
PlayAction(c_pepperMovie);
|
|
||||||
m_unk0x1d4++;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case c_nickCtl:
|
case c_nickCtl:
|
||||||
if (m_unk0xfc == 4) {
|
if (m_selectedCharacter == e_nick) {
|
||||||
m_radio.Stop();
|
m_radio.Stop();
|
||||||
BackgroundAudioManager()->Stop();
|
BackgroundAudioManager()->Stop();
|
||||||
PlayAction(c_nickMovie);
|
PlayAction(c_nickMovie);
|
||||||
@@ -597,7 +601,7 @@ MxU8 Infocenter::HandleButtonUp(MxS32 p_x, MxS32 p_y)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case c_lauraCtl:
|
case c_lauraCtl:
|
||||||
if (m_unk0xfc == 5) {
|
if (m_selectedCharacter == e_laura) {
|
||||||
m_radio.Stop();
|
m_radio.Stop();
|
||||||
BackgroundAudioManager()->Stop();
|
BackgroundAudioManager()->Stop();
|
||||||
PlayAction(c_lauraMovie);
|
PlayAction(c_lauraMovie);
|
||||||
@@ -612,58 +616,58 @@ MxU8 Infocenter::HandleButtonUp(MxS32 p_x, MxS32 p_y)
|
|||||||
|
|
||||||
switch (m_mapAreas[m_unk0x1c8].m_unk0x04) {
|
switch (m_mapAreas[m_unk0x1c8].m_unk0x04) {
|
||||||
case 3:
|
case 3:
|
||||||
GameState()->FUN_10039780(m_unk0xfc);
|
GameState()->FUN_10039780(m_selectedCharacter);
|
||||||
|
|
||||||
switch (m_unk0xfc) {
|
switch (m_selectedCharacter) {
|
||||||
case 1:
|
case e_pepper:
|
||||||
PlayAction(c_pepperCharacterSelect);
|
PlayAction(c_pepperCharacterSelect);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case e_mama:
|
||||||
PlayAction(c_mamaCharacterSelect);
|
PlayAction(c_mamaCharacterSelect);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case e_papa:
|
||||||
PlayAction(c_papaCharacterSelect);
|
PlayAction(c_papaCharacterSelect);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case e_nick:
|
||||||
PlayAction(c_nickCharacterSelect);
|
PlayAction(c_nickCharacterSelect);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case e_laura:
|
||||||
PlayAction(c_lauraCharacterSelect);
|
PlayAction(c_lauraCharacterSelect);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
if (m_unk0xfc) {
|
if (m_selectedCharacter) {
|
||||||
m_transitionDestination = 16;
|
m_transitionDestination = 16;
|
||||||
m_infocenterState->SetUnknown0x74(5);
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
if (m_unk0xfc) {
|
if (m_selectedCharacter) {
|
||||||
m_transitionDestination = 19;
|
m_transitionDestination = 19;
|
||||||
m_infocenterState->SetUnknown0x74(5);
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
if (m_unk0xfc) {
|
if (m_selectedCharacter) {
|
||||||
m_transitionDestination = 22;
|
m_transitionDestination = 22;
|
||||||
m_infocenterState->SetUnknown0x74(5);
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
if (m_unk0xfc) {
|
if (m_selectedCharacter) {
|
||||||
m_transitionDestination = 25;
|
m_transitionDestination = 25;
|
||||||
m_infocenterState->SetUnknown0x74(5);
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
if (m_unk0xfc) {
|
if (m_selectedCharacter) {
|
||||||
m_transitionDestination = 29;
|
m_transitionDestination = 29;
|
||||||
m_infocenterState->SetUnknown0x74(5);
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 15:
|
case 15:
|
||||||
if (m_unk0xfc) {
|
if (m_selectedCharacter) {
|
||||||
m_transitionDestination = 32;
|
m_transitionDestination = 32;
|
||||||
m_infocenterState->SetUnknown0x74(5);
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
}
|
}
|
||||||
@@ -685,22 +689,26 @@ MxU8 Infocenter::HandleButtonUp(MxS32 p_x, MxS32 p_y)
|
|||||||
dialogueToPlay = c_registerToContinueDialogue;
|
dialogueToPlay = c_registerToContinueDialogue;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
switch (m_unk0xfc) {
|
switch (m_selectedCharacter) {
|
||||||
case 1:
|
case e_pepper:
|
||||||
dialogueToPlay = c_pepperCharacterSelect;
|
dialogueToPlay = c_pepperCharacterSelect;
|
||||||
|
GameState()->SetUnknown0x0c(m_selectedCharacter);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case e_mama:
|
||||||
dialogueToPlay = c_mamaCharacterSelect;
|
dialogueToPlay = c_mamaCharacterSelect;
|
||||||
|
GameState()->SetUnknown0x0c(m_selectedCharacter);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case e_papa:
|
||||||
dialogueToPlay = c_papaCharacterSelect;
|
dialogueToPlay = c_papaCharacterSelect;
|
||||||
|
GameState()->SetUnknown0x0c(m_selectedCharacter);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case e_nick:
|
||||||
dialogueToPlay = c_nickCharacterSelect;
|
dialogueToPlay = c_nickCharacterSelect;
|
||||||
|
GameState()->SetUnknown0x0c(m_selectedCharacter);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case e_laura:
|
||||||
dialogueToPlay = c_lauraCharacterSelect;
|
dialogueToPlay = c_lauraCharacterSelect;
|
||||||
GameState()->SetUnknown0x0c(m_unk0xfc);
|
GameState()->SetUnknown0x0c(m_selectedCharacter);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
dialogueToPlay =
|
dialogueToPlay =
|
||||||
@@ -771,6 +779,7 @@ MxU8 Infocenter::HandleClick(LegoControlManagerEvent& p_param)
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case c_infoCtl:
|
case c_infoCtl:
|
||||||
|
actionToPlay = c_infoCtlDescription;
|
||||||
m_radio.Stop();
|
m_radio.Stop();
|
||||||
break;
|
break;
|
||||||
case c_doorCtl:
|
case c_doorCtl:
|
||||||
@@ -801,7 +810,7 @@ MxU8 Infocenter::HandleClick(LegoControlManagerEvent& p_param)
|
|||||||
actionToPlay = c_medCtlDescription;
|
actionToPlay = c_medCtlDescription;
|
||||||
m_radio.Stop();
|
m_radio.Stop();
|
||||||
break;
|
break;
|
||||||
case c_copCtlDescription:
|
case c_copCtl:
|
||||||
actionToPlay = c_copCtlDescription;
|
actionToPlay = c_copCtlDescription;
|
||||||
m_radio.Stop();
|
m_radio.Stop();
|
||||||
break;
|
break;
|
||||||
@@ -908,7 +917,7 @@ MxLong Infocenter::HandleNotification0(MxNotificationParam& p_param)
|
|||||||
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 == c_mamaMovie || m_currentInfomainScript == c_papaMovie ||
|
||||||
m_currentInfomainScript == c_pepperMovie || m_currentInfomainScript == c_nickMovie ||
|
m_currentInfomainScript == c_pepperMovie || m_currentInfomainScript == c_nickMovie ||
|
||||||
m_currentInfomainScript == c_lauraMovie || m_currentInfomainScript == c_unk557 ||
|
m_currentInfomainScript == c_lauraMovie || m_currentInfomainScript == c_infoCtlDescription ||
|
||||||
m_currentInfomainScript == c_boatCtlDescription || m_currentInfomainScript == c_raceCtlDescription ||
|
m_currentInfomainScript == c_boatCtlDescription || m_currentInfomainScript == c_raceCtlDescription ||
|
||||||
m_currentInfomainScript == c_pizzaCtlDescription || m_currentInfomainScript == c_gasCtlDescription ||
|
m_currentInfomainScript == c_pizzaCtlDescription || m_currentInfomainScript == c_gasCtlDescription ||
|
||||||
m_currentInfomainScript == c_medCtlDescription || m_currentInfomainScript == c_copCtlDescription) {
|
m_currentInfomainScript == c_medCtlDescription || m_currentInfomainScript == c_copCtlDescription) {
|
||||||
@@ -987,9 +996,9 @@ void Infocenter::PlayCutscene(Cutscene p_entityId, MxBool p_scale)
|
|||||||
VideoManager()->GetDisplaySurface()->ClearScreen();
|
VideoManager()->GetDisplaySurface()->ClearScreen();
|
||||||
|
|
||||||
if (m_currentCutscene != e_noIntro) {
|
if (m_currentCutscene != e_noIntro) {
|
||||||
// check if the cutscene is not an ending
|
// check if the cutscene is an ending
|
||||||
if (m_currentCutscene >= e_badEndMovie && m_currentCutscene <= e_goodEndMovie) {
|
if (m_currentCutscene >= e_badEndMovie && m_currentCutscene <= e_goodEndMovie) {
|
||||||
FUN_10070e90();
|
Reset();
|
||||||
}
|
}
|
||||||
InvokeAction(Extra::ActionType::e_opendisk, *g_introScript, m_currentCutscene, NULL);
|
InvokeAction(Extra::ActionType::e_opendisk, *g_introScript, m_currentCutscene, NULL);
|
||||||
}
|
}
|
||||||
@@ -1092,9 +1101,36 @@ void Infocenter::UpdateFrameHot(MxBool p_display)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10070e90
|
// FUNCTION: LEGO1 0x10070e90
|
||||||
void Infocenter::FUN_10070e90()
|
void Infocenter::Reset()
|
||||||
{
|
{
|
||||||
|
switch (GameState()->GetUnknown10()) {
|
||||||
|
case 1:
|
||||||
|
Lego()->RemoveWorld(*g_act2mainScript, 0);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
Lego()->RemoveWorld(*g_act3Script, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
PlantManager()->FUN_10027120();
|
||||||
|
BuildingManager()->FUN_10030590();
|
||||||
|
AnimationManager()->FUN_1005ee80(FALSE);
|
||||||
|
UnkSaveDataWriter()->FUN_100832a0();
|
||||||
|
GameState()->FUN_1003cea0(0);
|
||||||
|
GameState()->SetPreviousArea(0);
|
||||||
|
GameState()->SetUnknown0x42c(0);
|
||||||
|
|
||||||
|
InitializeBitmaps();
|
||||||
|
m_selectedCharacter = e_pepper;
|
||||||
|
|
||||||
|
GameState()->FUN_10039780(e_pepper);
|
||||||
|
|
||||||
|
HelicopterState* state = (HelicopterState*) GameState()->GetState("HelicopterState");
|
||||||
|
|
||||||
|
if (state) {
|
||||||
|
state->SetFlag();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10070f60
|
// FUNCTION: LEGO1 0x10070f60
|
||||||
|
@@ -588,7 +588,7 @@ MxResult LegoOmni::Create(MxOmniCreateParam& p_param)
|
|||||||
if (m_transitionManager->GetDDrawSurfaceFromVideoManager() == SUCCESS) {
|
if (m_transitionManager->GetDDrawSurfaceFromVideoManager() == SUCCESS) {
|
||||||
m_notificationManager->Register(this);
|
m_notificationManager->Register(this);
|
||||||
SetAppCursor(1);
|
SetAppCursor(1);
|
||||||
m_gameState->SetSomeEnumState(0);
|
m_gameState->FUN_1003cea0(0);
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user