From 9f0018e60c363762afb45fa8733a568841380974 Mon Sep 17 00:00:00 2001 From: disinvite Date: Tue, 3 Dec 2024 16:18:39 -0500 Subject: [PATCH] First batch --- LEGO1/lego/legoomni/src/actors/ambulance.cpp | 3 ++- LEGO1/lego/legoomni/src/actors/bumpbouy.cpp | 4 +++- .../legoomni/src/audio/mxbackgroundaudiomanager.cpp | 5 ++++- LEGO1/lego/legoomni/src/build/legocarbuild.cpp | 3 ++- LEGO1/lego/legoomni/src/common/legoanimmmpresenter.cpp | 4 ++-- LEGO1/lego/legoomni/src/entity/act2brick.cpp | 6 +++++- LEGO1/lego/legoomni/src/race/legorace.cpp | 3 ++- LEGO1/lego/legoomni/src/race/legoracemap.cpp | 4 +++- LEGO1/lego/legoomni/src/worlds/hospital.cpp | 4 +++- LEGO1/omni/src/common/mxcompositepresenter.cpp | 10 +++++++++- 10 files changed, 35 insertions(+), 11 deletions(-) diff --git a/LEGO1/lego/legoomni/src/actors/ambulance.cpp b/LEGO1/lego/legoomni/src/actors/ambulance.cpp index 8d2d8374..92ce90a7 100644 --- a/LEGO1/lego/legoomni/src/actors/ambulance.cpp +++ b/LEGO1/lego/legoomni/src/actors/ambulance.cpp @@ -130,8 +130,9 @@ void Ambulance::CreateState() MxLong Ambulance::Notify(MxParam& p_param) { MxLong result = 0; + MxNotificationParam& param = (MxNotificationParam&) p_param; - switch (((MxNotificationParam&) p_param).GetNotification()) { + switch (param.GetNotification()) { case c_notificationType0: result = HandleNotification0(); break; diff --git a/LEGO1/lego/legoomni/src/actors/bumpbouy.cpp b/LEGO1/lego/legoomni/src/actors/bumpbouy.cpp index 24e6d5c7..371e4257 100644 --- a/LEGO1/lego/legoomni/src/actors/bumpbouy.cpp +++ b/LEGO1/lego/legoomni/src/actors/bumpbouy.cpp @@ -33,10 +33,12 @@ BumpBouy::~BumpBouy() MxLong BumpBouy::Notify(MxParam& p_param) { MxLong result = 0; + MxNotificationParam& param = (MxNotificationParam&) p_param; + IslePathActor* user = (IslePathActor*) UserActor(); assert(user); - if (user->IsA("Jetski") && ((MxNotificationParam&) p_param).GetNotification() == c_notificationClick) { + if (user->IsA("Jetski") && param.GetNotification() == c_notificationClick) { VideoManager()->SetRender3D(FALSE); user->SetWorldSpeed(0); user->Exit(); diff --git a/LEGO1/lego/legoomni/src/audio/mxbackgroundaudiomanager.cpp b/LEGO1/lego/legoomni/src/audio/mxbackgroundaudiomanager.cpp index 98cf881b..60988521 100644 --- a/LEGO1/lego/legoomni/src/audio/mxbackgroundaudiomanager.cpp +++ b/LEGO1/lego/legoomni/src/audio/mxbackgroundaudiomanager.cpp @@ -196,9 +196,12 @@ void MxBackgroundAudioManager::FadeInOrFadeOut() } // FUNCTION: LEGO1 0x1007f170 +// FUNCTION: BETA10 0x100e8eb6 MxLong MxBackgroundAudioManager::Notify(MxParam& p_param) { - switch (((MxNotificationParam&) p_param).GetNotification()) { + MxNotificationParam& param = (MxNotificationParam&) p_param; + + switch (param.GetNotification()) { case c_notificationStartAction: StartAction(p_param); return 1; diff --git a/LEGO1/lego/legoomni/src/build/legocarbuild.cpp b/LEGO1/lego/legoomni/src/build/legocarbuild.cpp index b86fecd4..e8ac3d7d 100644 --- a/LEGO1/lego/legoomni/src/build/legocarbuild.cpp +++ b/LEGO1/lego/legoomni/src/build/legocarbuild.cpp @@ -656,9 +656,10 @@ MxResult LegoCarBuild::Tickle() MxLong LegoCarBuild::Notify(MxParam& p_param) { MxLong result = LegoWorld::Notify(p_param); + MxNotificationParam& param = (MxNotificationParam&) p_param; if (m_worldStarted) { - switch (((MxNotificationParam*) &p_param)->GetNotification()) { + switch (param.GetNotification()) { case c_notificationType0: FUN_10024c20((LegoEventNotificationParam*) &p_param); result = 1; diff --git a/LEGO1/lego/legoomni/src/common/legoanimmmpresenter.cpp b/LEGO1/lego/legoomni/src/common/legoanimmmpresenter.cpp index 1f854781..ef3df418 100644 --- a/LEGO1/lego/legoomni/src/common/legoanimmmpresenter.cpp +++ b/LEGO1/lego/legoomni/src/common/legoanimmmpresenter.cpp @@ -215,9 +215,9 @@ void LegoAnimMMPresenter::DoneTickle() MxLong LegoAnimMMPresenter::Notify(MxParam& p_param) { AUTOLOCK(m_criticalSection); + MxNotificationParam& param = (MxNotificationParam&) p_param; - if (((MxNotificationParam&) p_param).GetNotification() == c_notificationEndAction && - ((MxNotificationParam&) p_param).GetSender() == m_presenter) { + if (param.GetNotification() == c_notificationEndAction && param.GetSender() == m_presenter) { m_presenter = NULL; } diff --git a/LEGO1/lego/legoomni/src/entity/act2brick.cpp b/LEGO1/lego/legoomni/src/entity/act2brick.cpp index a3049c1b..427aae48 100644 --- a/LEGO1/lego/legoomni/src/entity/act2brick.cpp +++ b/LEGO1/lego/legoomni/src/entity/act2brick.cpp @@ -12,6 +12,7 @@ #include "mxtimer.h" #include "roi/legoroi.h" +#include #include #include @@ -148,7 +149,9 @@ MxResult Act2Brick::Tickle() // FUNCTION: BETA10 0x10012ec4 MxLong Act2Brick::Notify(MxParam& p_param) { - if (((MxNotificationParam&) p_param).GetNotification() == c_notificationClick && m_roi->GetVisibility()) { + MxNotificationParam& param = (MxNotificationParam&) p_param; + + if (param.GetNotification() == c_notificationClick && m_roi->GetVisibility()) { m_roi->SetVisibility(FALSE); if (m_whistleSound != NULL) { @@ -160,6 +163,7 @@ MxLong Act2Brick::Notify(MxParam& p_param) return 1; } + assert(0); return 0; } diff --git a/LEGO1/lego/legoomni/src/race/legorace.cpp b/LEGO1/lego/legoomni/src/race/legorace.cpp index 2564f7a5..83d1eddc 100644 --- a/LEGO1/lego/legoomni/src/race/legorace.cpp +++ b/LEGO1/lego/legoomni/src/race/legorace.cpp @@ -89,10 +89,11 @@ LegoRace::~LegoRace() MxLong LegoRace::Notify(MxParam& p_param) { LegoWorld::Notify(p_param); + MxNotificationParam& param = (MxNotificationParam&) p_param; MxLong result = 0; if (m_worldStarted) { - switch (((MxNotificationParam&) p_param).GetNotification()) { + switch (param.GetNotification()) { case c_notificationType0: HandleType0Notification((MxNotificationParam&) p_param); break; diff --git a/LEGO1/lego/legoomni/src/race/legoracemap.cpp b/LEGO1/lego/legoomni/src/race/legoracemap.cpp index 950c344b..73867608 100644 --- a/LEGO1/lego/legoomni/src/race/legoracemap.cpp +++ b/LEGO1/lego/legoomni/src/race/legoracemap.cpp @@ -124,7 +124,9 @@ MxLong LegoRaceMap::Notify(MxParam& p_param) return 1; } - if (((MxNotificationParam&) p_param).GetNotification() == c_notificationControl && + MxNotificationParam& param = (MxNotificationParam&) p_param; + + if (param.GetNotification() == c_notificationControl && m_Map_Ctl->GetAction()->GetObjectId() == ((LegoControlManagerNotificationParam&) p_param).GetClickedObjectId()) { diff --git a/LEGO1/lego/legoomni/src/worlds/hospital.cpp b/LEGO1/lego/legoomni/src/worlds/hospital.cpp index 6b3c8e5a..cfec6955 100644 --- a/LEGO1/lego/legoomni/src/worlds/hospital.cpp +++ b/LEGO1/lego/legoomni/src/worlds/hospital.cpp @@ -106,13 +106,15 @@ MxResult Hospital::Create(MxDSAction& p_dsAction) } // FUNCTION: LEGO1 0x10074990 +// FUNCTION: BETA10 0x1002ca3b MxLong Hospital::Notify(MxParam& p_param) { MxLong result = 0; + MxNotificationParam& param = (MxNotificationParam&) p_param; LegoWorld::Notify(p_param); if (m_worldStarted) { - switch (((MxNotificationParam&) p_param).GetNotification()) { + switch (param.GetNotification()) { case c_notificationEndAction: result = HandleEndAction((MxEndActionNotificationParam&) p_param); break; diff --git a/LEGO1/omni/src/common/mxcompositepresenter.cpp b/LEGO1/omni/src/common/mxcompositepresenter.cpp index 124d6b0a..4e83d86c 100644 --- a/LEGO1/omni/src/common/mxcompositepresenter.cpp +++ b/LEGO1/omni/src/common/mxcompositepresenter.cpp @@ -8,6 +8,8 @@ #include "mxnotificationmanager.h" #include "mxobjectfactory.h" +#include + DECOMP_SIZE_ASSERT(MxCompositePresenter, 0x4c); // FUNCTION: LEGO1 0x100b60b0 @@ -107,16 +109,22 @@ void MxCompositePresenter::EndAction() } // FUNCTION: LEGO1 0x100b6760 +// FUNCTION: BETA10 0x1013771e MxLong MxCompositePresenter::Notify(MxParam& p_param) { AUTOLOCK(m_criticalSection); + MxNotificationParam& param = (MxNotificationParam&) p_param; - switch (((MxNotificationParam&) p_param).GetNotification()) { + switch (param.GetNotification()) { case c_notificationEndAction: VTable0x58((MxEndActionNotificationParam&) p_param); break; case c_notificationPresenter: VTable0x5c((MxNotificationParam&) p_param); + break; + default: + assert(0); + break; } return 0;