mirror of
https://github.com/isledecomp/isle-portable.git
synced 2025-09-26 14:13:55 -04:00
Implement more infocenter methods (#519)
* push changes * format fix * Update legogamestate.cpp * Update legogamestate.cpp * Fixes * Match Infocenter::Create * Style * Fix InfocenterDoor::HandleClick --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
parent
a28113a26f
commit
0c47ed5056
@ -61,11 +61,11 @@ public:
|
|||||||
c_nickSelected = 33,
|
c_nickSelected = 33,
|
||||||
c_lauraSelected = 34,
|
c_lauraSelected = 34,
|
||||||
|
|
||||||
c_unk40 = 40,
|
c_mamaMovie = 40,
|
||||||
c_unk41 = 41,
|
c_papaMovie = 41,
|
||||||
c_unk42 = 42,
|
c_pepperMovie = 42,
|
||||||
c_unk43 = 43,
|
c_nickMovie = 43,
|
||||||
c_unk44 = 44,
|
c_lauraMovie = 44,
|
||||||
|
|
||||||
c_goToRegBook = 70,
|
c_goToRegBook = 70,
|
||||||
c_goToRegBookRed = 71,
|
c_goToRegBookRed = 71,
|
||||||
|
@ -34,6 +34,7 @@ public:
|
|||||||
inline Playlist& GetUnknown0x14() { return m_unk0x14; }
|
inline Playlist& GetUnknown0x14() { return m_unk0x14; }
|
||||||
inline Playlist& GetUnknown0x68() { return m_unk0x68; }
|
inline Playlist& GetUnknown0x68() { return m_unk0x68; }
|
||||||
inline MxU32 GetUnknown0x74() { return m_unk0x74; }
|
inline MxU32 GetUnknown0x74() { return m_unk0x74; }
|
||||||
|
inline Playlist* GetUnknown0x44() { return m_unk0x44; }
|
||||||
|
|
||||||
inline void SetUnknown0x74(MxU32 p_unk0x74) { m_unk0x74 = p_unk0x74; }
|
inline void SetUnknown0x74(MxU32 p_unk0x74) { m_unk0x74 = p_unk0x74; }
|
||||||
|
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
#include "mxcore.h"
|
#include "mxcore.h"
|
||||||
#include "mxpresenterlist.h"
|
#include "mxpresenterlist.h"
|
||||||
|
|
||||||
|
class MxControlPresenter;
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d6a98
|
// VTABLE: LEGO1 0x100d6a98
|
||||||
// SIZE 0x2c
|
// SIZE 0x2c
|
||||||
class LegoControlManagerEvent : public LegoEventNotificationParam {
|
class LegoControlManagerEvent : public LegoEventNotificationParam {
|
||||||
@ -62,7 +64,7 @@ public:
|
|||||||
void Unregister(MxCore* p_listener);
|
void Unregister(MxCore* p_listener);
|
||||||
MxBool FUN_10029210(LegoEventNotificationParam& p_param, MxPresenter* p_presenter);
|
MxBool FUN_10029210(LegoEventNotificationParam& p_param, MxPresenter* p_presenter);
|
||||||
void FUN_100293c0(undefined4, const char*, undefined2);
|
void FUN_100293c0(undefined4, const char*, undefined2);
|
||||||
void FUN_100294e0(MxS32 p_x, MxS32 p_y);
|
MxControlPresenter* FUN_100294e0(MxS32 p_x, MxS32 p_y);
|
||||||
MxBool FUN_10029630();
|
MxBool FUN_10029630();
|
||||||
MxBool FUN_10029750();
|
MxBool FUN_10029750();
|
||||||
void FUN_100292e0();
|
void FUN_100292e0();
|
||||||
|
@ -40,9 +40,12 @@ public:
|
|||||||
inline MxS32 GetCurrentAct() { return m_currentAct; }
|
inline MxS32 GetCurrentAct() { return m_currentAct; }
|
||||||
inline MxU32 GetCurrentArea() { return m_currentArea; }
|
inline MxU32 GetCurrentArea() { return m_currentArea; }
|
||||||
inline MxU32 GetPreviousArea() { return m_previousArea; }
|
inline MxU32 GetPreviousArea() { return m_previousArea; }
|
||||||
|
inline MxU32 GetUnknown0x42c() { return m_unk0x42c; }
|
||||||
|
|
||||||
inline void SetDirty(MxBool p_dirty) { m_isDirty = p_dirty; }
|
inline void SetDirty(MxBool p_dirty) { m_isDirty = p_dirty; }
|
||||||
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 SetUnknown0x0c(MxU8 p_unk0x0c) { m_unk0x0c = p_unk0x0c; }
|
||||||
|
|
||||||
void SetSomeEnumState(undefined4 p_state);
|
void SetSomeEnumState(undefined4 p_state);
|
||||||
void FUN_1003ceb0();
|
void FUN_1003ceb0();
|
||||||
|
@ -40,10 +40,9 @@ public:
|
|||||||
virtual void VTable0x6c(MxS16); // vtable+0x6c
|
virtual void VTable0x6c(MxS16); // vtable+0x6c
|
||||||
|
|
||||||
MxBool FUN_10044480(LegoControlManagerEvent* p_event, MxPresenter* p_presenter);
|
MxBool FUN_10044480(LegoControlManagerEvent* p_event, MxPresenter* p_presenter);
|
||||||
|
|
||||||
private:
|
|
||||||
MxBool FUN_10044270(MxS32 p_x, MxS32 p_y, MxVideoPresenter* p_presenter);
|
MxBool FUN_10044270(MxS32 p_x, MxS32 p_y, MxVideoPresenter* p_presenter);
|
||||||
|
|
||||||
|
private:
|
||||||
undefined2 m_unk0x4c; // 0x4c
|
undefined2 m_unk0x4c; // 0x4c
|
||||||
MxS16 m_unk0x4e; // 0x4e
|
MxS16 m_unk0x4e; // 0x4e
|
||||||
MxBool m_unk0x50; // 0x50
|
MxBool m_unk0x50; // 0x50
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include "legostate.h"
|
#include "legostate.h"
|
||||||
#include "legoutil.h"
|
#include "legoutil.h"
|
||||||
#include "legovideomanager.h"
|
#include "legovideomanager.h"
|
||||||
|
#include "legoworld.h"
|
||||||
#include "mxbackgroundaudiomanager.h"
|
#include "mxbackgroundaudiomanager.h"
|
||||||
#include "mxobjectfactory.h"
|
#include "mxobjectfactory.h"
|
||||||
#include "mxstring.h"
|
#include "mxstring.h"
|
||||||
@ -446,6 +447,8 @@ void LegoGameState::SwitchArea(MxU32 p_area)
|
|||||||
VideoManager()->SetUnk0x554(FALSE);
|
VideoManager()->SetUnk0x554(FALSE);
|
||||||
|
|
||||||
MxAtomId* script = g_isleScript;
|
MxAtomId* script = g_isleScript;
|
||||||
|
LegoWorld* world;
|
||||||
|
|
||||||
switch (p_area) {
|
switch (p_area) {
|
||||||
case 1:
|
case 1:
|
||||||
break;
|
break;
|
||||||
@ -461,6 +464,24 @@ void LegoGameState::SwitchArea(MxU32 p_area)
|
|||||||
case 5:
|
case 5:
|
||||||
script = g_elevbottScript;
|
script = g_elevbottScript;
|
||||||
break;
|
break;
|
||||||
|
case 6:
|
||||||
|
case 7:
|
||||||
|
world = FindWorld(*g_isleScript, 0);
|
||||||
|
|
||||||
|
if (world == NULL) {
|
||||||
|
InvokeAction(Extra::ActionType::e_opendisk, *g_isleScript, 0, NULL);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
#ifdef COMPAT_MODE
|
||||||
|
{
|
||||||
|
MxNotificationParam param(c_notificationType20, NULL);
|
||||||
|
NotificationManager()->Send(world, ¶m);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
NotificationManager()->Send(world, &MxNotificationParam(c_notificationType20, NULL));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
VideoManager()->SetUnk0x554(TRUE);
|
VideoManager()->SetUnk0x554(TRUE);
|
||||||
script = g_regbookScript;
|
script = g_regbookScript;
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
#include "legocontrolmanager.h"
|
#include "legocontrolmanager.h"
|
||||||
|
|
||||||
#include "legoeventnotificationparam.h"
|
#include "legoeventnotificationparam.h"
|
||||||
|
#include "legoomni.h"
|
||||||
|
#include "legovideomanager.h"
|
||||||
#include "mxcontrolpresenter.h"
|
#include "mxcontrolpresenter.h"
|
||||||
#include "mxpresenter.h"
|
#include "mxpresenter.h"
|
||||||
#include "mxticklemanager.h"
|
#include "mxticklemanager.h"
|
||||||
@ -121,9 +123,24 @@ void LegoControlManager::FUN_100293c0(undefined4, const char*, undefined2)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x100294e0
|
// FUNCTION: LEGO1 0x100294e0
|
||||||
void LegoControlManager::FUN_100294e0(MxS32 p_x, MxS32 p_y)
|
MxControlPresenter* LegoControlManager::FUN_100294e0(MxS32 p_x, MxS32 p_y)
|
||||||
{
|
{
|
||||||
|
if (m_presenterList) {
|
||||||
|
MxPresenterListCursor cursor(m_presenterList);
|
||||||
|
MxPresenter* control;
|
||||||
|
MxVideoPresenter* presenter = (MxVideoPresenter*) VideoManager()->GetPresenterAt(p_x, p_y);
|
||||||
|
|
||||||
|
if (presenter) {
|
||||||
|
while (cursor.Next(control)) {
|
||||||
|
if (((MxControlPresenter*) control)->FUN_10044270(p_x, p_y, presenter)) {
|
||||||
|
return (MxControlPresenter*) control;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10029600
|
// FUNCTION: LEGO1 0x10029600
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include "legovideomanager.h"
|
#include "legovideomanager.h"
|
||||||
#include "mxactionnotificationparam.h"
|
#include "mxactionnotificationparam.h"
|
||||||
#include "mxbackgroundaudiomanager.h"
|
#include "mxbackgroundaudiomanager.h"
|
||||||
|
#include "mxcontrolpresenter.h"
|
||||||
#include "mxnotificationmanager.h"
|
#include "mxnotificationmanager.h"
|
||||||
#include "mxstillpresenter.h"
|
#include "mxstillpresenter.h"
|
||||||
#include "mxticklemanager.h"
|
#include "mxticklemanager.h"
|
||||||
@ -73,28 +74,54 @@ Infocenter::~Infocenter()
|
|||||||
TickleManager()->UnregisterClient(this);
|
TickleManager()->UnregisterClient(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1006ed90
|
// FUNCTION: LEGO1 0x1006ed90
|
||||||
MxResult Infocenter::Create(MxDSAction& p_dsAction)
|
MxResult Infocenter::Create(MxDSAction& p_dsAction)
|
||||||
{
|
{
|
||||||
if (LegoWorld::Create(p_dsAction) == SUCCESS) {
|
MxResult result = LegoWorld::Create(p_dsAction);
|
||||||
|
if (result == SUCCESS) {
|
||||||
InputManager()->SetWorld(this);
|
InputManager()->SetWorld(this);
|
||||||
ControlManager()->Register(this);
|
ControlManager()->Register(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
LegoGameState* gs = GameState();
|
m_infocenterState = (InfocenterState*) GameState()->GetState("InfocenterState");
|
||||||
m_infocenterState = (InfocenterState*) gs->GetState("InfocenterState");
|
|
||||||
if (!m_infocenterState) {
|
if (!m_infocenterState) {
|
||||||
m_infocenterState = (InfocenterState*) gs->CreateState("InfocenterState");
|
m_infocenterState = (InfocenterState*) GameState()->CreateState("InfocenterState");
|
||||||
m_infocenterState->SetUnknown0x74(3);
|
m_infocenterState->SetUnknown0x74(3);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// TODO
|
if (m_infocenterState->GetUnknown0x74() != 8 && m_infocenterState->GetUnknown0x74() != 4 &&
|
||||||
|
m_infocenterState->GetUnknown0x74() != 15) {
|
||||||
|
m_infocenterState->SetUnknown0x74(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
MxS16 count, i;
|
||||||
|
for (count = 0; count < m_infocenterState->GetInfocenterBufferSize(); count++) {
|
||||||
|
if (m_infocenterState->GetInfocenterBufferElement(count) == NULL) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++) {
|
||||||
|
if (m_infocenterState->GetInfocenterBufferElement(i)) {
|
||||||
|
m_infocenterState->GetInfocenterBufferElement(i)->Enable(TRUE);
|
||||||
|
m_infocenterState->GetInfocenterBufferElement(i)->SetTickleState(MxPresenter::e_repeating);
|
||||||
|
m_infocenterState->GetInfocenterBufferElement(i)->VTable0x88(((7 - count) / 2 + i) * 29 + 223, 45);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GameState()->SetCurrentArea(2);
|
||||||
|
GameState()->StopArea(0);
|
||||||
|
|
||||||
|
if (m_infocenterState->GetUnknown0x74() == 4) {
|
||||||
|
LegoGameState* state = GameState();
|
||||||
|
state->SetPreviousArea(GameState()->GetUnknown0x42c());
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
|
||||||
InputManager()->Register(this);
|
InputManager()->Register(this);
|
||||||
SetIsWorldActive(FALSE);
|
SetIsWorldActive(FALSE);
|
||||||
return SUCCESS;
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1006ef10
|
// FUNCTION: LEGO1 0x1006ef10
|
||||||
@ -159,8 +186,9 @@ MxLong Infocenter::HandleEndAction(MxEndActionNotificationParam& p_param)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (action->GetAtomId() == m_atom &&
|
if (action->GetAtomId() == m_atom &&
|
||||||
(action->GetObjectId() == c_unk40 || action->GetObjectId() == c_unk41 || action->GetObjectId() == c_unk42 ||
|
(action->GetObjectId() == c_mamaMovie || action->GetObjectId() == c_papaMovie ||
|
||||||
action->GetObjectId() == c_unk43 || action->GetObjectId() == c_unk44)) {
|
action->GetObjectId() == c_pepperMovie || action->GetObjectId() == c_nickMovie ||
|
||||||
|
action->GetObjectId() == c_lauraMovie)) {
|
||||||
if (m_unk0x1d4) {
|
if (m_unk0x1d4) {
|
||||||
m_unk0x1d4--;
|
m_unk0x1d4--;
|
||||||
}
|
}
|
||||||
@ -509,9 +537,194 @@ MxLong Infocenter::HandleKeyPress(MxS8 p_key)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1006feb0
|
// FUNCTION: LEGO1 0x1006feb0
|
||||||
MxU8 Infocenter::HandleButtonUp(MxS32 p_x, MxS32 p_y)
|
MxU8 Infocenter::HandleButtonUp(MxS32 p_x, MxS32 p_y)
|
||||||
{
|
{
|
||||||
|
if (m_unk0x11c) {
|
||||||
|
MxControlPresenter* control = InputManager()->GetControlManager()->FUN_100294e0(p_x - 1, p_y - 1);
|
||||||
|
|
||||||
|
switch (m_unk0x11c->GetAction()->GetObjectId()) {
|
||||||
|
case c_mamaSelected:
|
||||||
|
m_unk0xfc = 2;
|
||||||
|
break;
|
||||||
|
case c_papaSelected:
|
||||||
|
m_unk0xfc = 3;
|
||||||
|
break;
|
||||||
|
case c_pepperSelected:
|
||||||
|
m_unk0xfc = 1;
|
||||||
|
break;
|
||||||
|
case c_nickSelected:
|
||||||
|
m_unk0xfc = 4;
|
||||||
|
break;
|
||||||
|
case c_lauraSelected:
|
||||||
|
m_unk0xfc = 5;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (control != NULL) {
|
||||||
|
m_infoManDialogueTimer = 0;
|
||||||
|
|
||||||
|
switch (control->GetAction()->GetObjectId()) {
|
||||||
|
case c_mamaCtl:
|
||||||
|
if (m_unk0xfc == 2) {
|
||||||
|
m_radio.Stop();
|
||||||
|
BackgroundAudioManager()->Stop();
|
||||||
|
PlayAction(c_mamaMovie);
|
||||||
|
m_unk0x1d4++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case c_papaCtl:
|
||||||
|
if (m_unk0xfc == 3) {
|
||||||
|
m_radio.Stop();
|
||||||
|
BackgroundAudioManager()->Stop();
|
||||||
|
PlayAction(c_papaMovie);
|
||||||
|
m_unk0x1d4++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case c_pepperCtl:
|
||||||
|
if (m_unk0xfc == 1) {
|
||||||
|
m_radio.Stop();
|
||||||
|
BackgroundAudioManager()->Stop();
|
||||||
|
PlayAction(c_pepperMovie);
|
||||||
|
m_unk0x1d4++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case c_nickCtl:
|
||||||
|
if (m_unk0xfc == 4) {
|
||||||
|
m_radio.Stop();
|
||||||
|
BackgroundAudioManager()->Stop();
|
||||||
|
PlayAction(c_nickMovie);
|
||||||
|
m_unk0x1d4++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case c_lauraCtl:
|
||||||
|
if (m_unk0xfc == 5) {
|
||||||
|
m_radio.Stop();
|
||||||
|
BackgroundAudioManager()->Stop();
|
||||||
|
PlayAction(c_lauraMovie);
|
||||||
|
m_unk0x1d4++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (m_unk0x1c8 != -1) {
|
||||||
|
m_infoManDialogueTimer = 0;
|
||||||
|
|
||||||
|
switch (m_mapAreas[m_unk0x1c8].m_unk0x04) {
|
||||||
|
case 3:
|
||||||
|
GameState()->FUN_10039780(m_unk0xfc);
|
||||||
|
|
||||||
|
switch (m_unk0xfc) {
|
||||||
|
case 1:
|
||||||
|
PlayAction(c_pepperCharacterSelect);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
PlayAction(c_mamaCharacterSelect);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
PlayAction(c_papaCharacterSelect);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
PlayAction(c_nickCharacterSelect);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
PlayAction(c_lauraCharacterSelect);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
if (m_unk0xfc) {
|
||||||
|
m_transitionDestination = 16;
|
||||||
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
if (m_unk0xfc) {
|
||||||
|
m_transitionDestination = 19;
|
||||||
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
if (m_unk0xfc) {
|
||||||
|
m_transitionDestination = 22;
|
||||||
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
if (m_unk0xfc) {
|
||||||
|
m_transitionDestination = 25;
|
||||||
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
if (m_unk0xfc) {
|
||||||
|
m_transitionDestination = 29;
|
||||||
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
if (m_unk0xfc) {
|
||||||
|
m_transitionDestination = 32;
|
||||||
|
m_infocenterState->SetUnknown0x74(5);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_unk0x11c->Enable(FALSE);
|
||||||
|
m_unk0x11c = NULL;
|
||||||
|
|
||||||
|
if (m_infocenterState->GetUnknown0x74() == 5) {
|
||||||
|
InfomainScript dialogueToPlay;
|
||||||
|
|
||||||
|
if (GameState()->GetUnknown10() == 0) {
|
||||||
|
if (m_infocenterState->GetInfocenterBufferElement(0) == NULL) {
|
||||||
|
m_infocenterState->SetUnknown0x74(2);
|
||||||
|
m_transitionDestination = 0;
|
||||||
|
dialogueToPlay = c_registerToContinueDialogue;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
switch (m_unk0xfc) {
|
||||||
|
case 1:
|
||||||
|
dialogueToPlay = c_pepperCharacterSelect;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
dialogueToPlay = c_mamaCharacterSelect;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
dialogueToPlay = c_papaCharacterSelect;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
dialogueToPlay = c_nickCharacterSelect;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
dialogueToPlay = c_lauraCharacterSelect;
|
||||||
|
GameState()->SetUnknown0x0c(m_unk0xfc);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
dialogueToPlay =
|
||||||
|
(InfomainScript) m_infocenterState->GetUnknown0x44()[GameState()->GetUnknown10()].Next();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
InputManager()->DisableInputProcessing();
|
||||||
|
InputManager()->SetUnknown336(TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dialogueToPlay =
|
||||||
|
(InfomainScript) m_infocenterState->GetUnknown0x44()[GameState()->GetUnknown10()].Next();
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayAction(dialogueToPlay);
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateFrameHot(TRUE);
|
||||||
|
FUN_10070d10(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -694,9 +907,9 @@ 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_unk40 || m_currentInfomainScript == c_unk41 ||
|
if (m_currentInfomainScript == c_mamaMovie || m_currentInfomainScript == c_papaMovie ||
|
||||||
m_currentInfomainScript == c_unk42 || m_currentInfomainScript == c_unk43 ||
|
m_currentInfomainScript == c_pepperMovie || m_currentInfomainScript == c_nickMovie ||
|
||||||
m_currentInfomainScript == c_unk44 || m_currentInfomainScript == c_unk557 ||
|
m_currentInfomainScript == c_lauraMovie || m_currentInfomainScript == c_unk557 ||
|
||||||
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) {
|
||||||
@ -823,7 +1036,7 @@ void Infocenter::FUN_10070d10(MxS32 p_x, MxS32 p_y)
|
|||||||
|
|
||||||
if (i != m_unk0x1c8) {
|
if (i != m_unk0x1c8) {
|
||||||
if (m_unk0x1c8 != -1) {
|
if (m_unk0x1c8 != -1) {
|
||||||
m_mapAreas[i].m_presenter->Enable(FALSE);
|
m_mapAreas[m_unk0x1c8].m_presenter->Enable(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_unk0x1c8 = i;
|
m_unk0x1c8 = i;
|
||||||
|
@ -120,6 +120,7 @@ MxLong InfocenterDoor::HandleClick(LegoControlManagerEvent& p_param)
|
|||||||
action.SetAtomId(*g_infodoorScript);
|
action.SetAtomId(*g_infodoorScript);
|
||||||
BackgroundAudioManager()->LowerVolume();
|
BackgroundAudioManager()->LowerVolume();
|
||||||
Start(&action);
|
Start(&action);
|
||||||
|
goto done;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -128,9 +129,12 @@ MxLong InfocenterDoor::HandleClick(LegoControlManagerEvent& p_param)
|
|||||||
action.SetAtomId(*g_infodoorScript);
|
action.SetAtomId(*g_infodoorScript);
|
||||||
BackgroundAudioManager()->LowerVolume();
|
BackgroundAudioManager()->LowerVolume();
|
||||||
Start(&action);
|
Start(&action);
|
||||||
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
TransitionManager()->StartTransition(MxTransitionManager::e_pixelation, 50, FALSE, FALSE);
|
TransitionManager()->StartTransition(MxTransitionManager::e_pixelation, 50, FALSE, FALSE);
|
||||||
|
|
||||||
|
done:
|
||||||
result = 1;
|
result = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -229,8 +229,7 @@ void MxMediaPresenter::RepeatingTickle()
|
|||||||
// FUNCTION: LEGO1 0x100b5ef0
|
// FUNCTION: LEGO1 0x100b5ef0
|
||||||
void MxMediaPresenter::DoneTickle()
|
void MxMediaPresenter::DoneTickle()
|
||||||
{
|
{
|
||||||
m_previousTickleStates |= 1 << m_currentTickleState;
|
ProgressTickleState(e_idle);
|
||||||
m_currentTickleState = e_idle;
|
|
||||||
EndAction();
|
EndAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user