This commit is contained in:
Christian Semmler 2024-02-02 15:52:54 -05:00
parent cf63efe230
commit a82eb65f48
4 changed files with 9 additions and 8 deletions

View File

@ -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"
@ -447,6 +448,7 @@ void LegoGameState::SwitchArea(MxU32 p_area)
MxAtomId* script = g_isleScript; MxAtomId* script = g_isleScript;
LegoWorld* world; LegoWorld* world;
switch (p_area) { switch (p_area) {
case 1: case 1:
break; break;
@ -465,6 +467,7 @@ void LegoGameState::SwitchArea(MxU32 p_area)
case 6: case 6:
case 7: case 7:
world = FindWorld(*g_isleScript, 0); world = FindWorld(*g_isleScript, 0);
if (world == NULL) { if (world == NULL) {
InvokeAction(Extra::ActionType::e_opendisk, *g_isleScript, 0, NULL); InvokeAction(Extra::ActionType::e_opendisk, *g_isleScript, 0, NULL);
} }
@ -472,10 +475,10 @@ void LegoGameState::SwitchArea(MxU32 p_area)
#ifdef COMPAT_MODE #ifdef COMPAT_MODE
{ {
MxNotificationParam param(c_notificationType20, NULL); MxNotificationParam param(c_notificationType20, NULL);
NotificationManager()->Send((MxCore*) world, &param); NotificationManager()->Send(world, &param);
} }
#else #else
NotificationManager()->Send((MxCore*) world, &MxNotificationParam(c_notificationType20, NULL)); NotificationManager()->Send(world, &MxNotificationParam(c_notificationType20, NULL));
#endif #endif
} }
break; break;

View File

@ -128,11 +128,10 @@ MxControlPresenter* LegoControlManager::FUN_100294e0(MxS32 p_x, MxS32 p_y)
{ {
if (m_presenterList) { if (m_presenterList) {
MxPresenterListCursor cursor(m_presenterList); MxPresenterListCursor cursor(m_presenterList);
MxPresenter* control;
MxVideoPresenter* presenter = (MxVideoPresenter*) VideoManager()->GetPresenterAt(p_x, p_y); MxVideoPresenter* presenter = (MxVideoPresenter*) VideoManager()->GetPresenterAt(p_x, p_y);
if (presenter) {
MxPresenter* control;
if (presenter) {
while (cursor.Next(control)) { while (cursor.Next(control)) {
if (((MxControlPresenter*) control)->FUN_10044270(p_x, p_y, presenter)) { if (((MxControlPresenter*) control)->FUN_10044270(p_x, p_y, presenter)) {
return (MxControlPresenter*) control; return (MxControlPresenter*) control;

View File

@ -104,7 +104,7 @@ MxResult Infocenter::Create(MxDSAction& p_dsAction)
for (MxS16 i = 0; i < count; i++) { for (MxS16 i = 0; i < count; i++) {
MxStillPresenter* still = m_infocenterState->GetInfocenterBufferElement(i); MxStillPresenter* still = m_infocenterState->GetInfocenterBufferElement(i);
if (still) { if (still) {
still->Enable(FALSE); still->Enable(TRUE);
still->SetTickleState(MxPresenter::e_repeating); still->SetTickleState(MxPresenter::e_repeating);
still->VTable0x88(((7 - count) / 2 + i), 45); still->VTable0x88(((7 - count) / 2 + i), 45);
} }

View File

@ -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();
} }