Implement/match Ambulance::HandlePathStruct (#1029)

* Implement/match Ambulance::HandlePathStruct

* Add annotation
This commit is contained in:
Christian Semmler
2024-06-13 14:10:19 -04:00
committed by GitHub
parent cf7246ac6c
commit bbc304ce46
41 changed files with 371 additions and 224 deletions

View File

@@ -1366,11 +1366,11 @@ LegoTranInfo* LegoAnimationManager::GetTranInfo(MxU32 p_index)
MxLong LegoAnimationManager::Notify(MxParam& p_param)
{
if (((MxNotificationParam&) p_param).GetSender() == this) {
if (((MxNotificationParam&) p_param).GetType() == c_notificationEndAnim) {
if (((MxNotificationParam&) p_param).GetNotification() == c_notificationEndAnim) {
FUN_100605e0(m_unk0x18, TRUE, NULL, TRUE, NULL, FALSE, TRUE, TRUE, TRUE);
}
}
else if (((MxNotificationParam&) p_param).GetType() == c_notificationEndAnim && m_tranInfoList != NULL) {
else if (((MxNotificationParam&) p_param).GetNotification() == c_notificationEndAnim && m_tranInfoList != NULL) {
LegoTranInfoListCursor cursor(m_tranInfoList);
LegoTranInfo* tranInfo;

View File

@@ -216,7 +216,7 @@ MxLong LegoAnimMMPresenter::Notify(MxParam& p_param)
{
AUTOLOCK(m_criticalSection);
if (((MxNotificationParam&) p_param).GetType() == c_notificationEndAction &&
if (((MxNotificationParam&) p_param).GetNotification() == c_notificationEndAction &&
((MxNotificationParam&) p_param).GetSender() == m_presenter) {
m_presenter = NULL;
}

View File

@@ -10,6 +10,7 @@
#include "legoinputmanager.h"
#include "legomain.h"
#include "legonamedtexture.h"
#include "legopathstruct.h"
#include "legosoundmanager.h"
#include "legovideomanager.h"
#include "legoworld.h"
@@ -20,7 +21,6 @@
#include "mxmisc.h"
#include "mxnotificationmanager.h"
#include "mxstreamer.h"
#include "mxtype19notificationparam.h"
#include "mxtypes.h"
#include "mxutilities.h"
#include "mxvariabletable.h"
@@ -367,7 +367,7 @@ void PlayCamAnim(LegoPathActor* p_actor, MxBool p_unused, MxU32 p_location, MxBo
MxLong result = 0;
if (world != NULL) {
MxType19NotificationParam param(c_notificationType19, p_actor, 0x43, p_location);
LegoPathStructEvent param(c_notificationPathStruct, p_actor, LegoPathStruct::c_camAnim, p_location);
result = world->Notify(param);
}

View File

@@ -178,13 +178,13 @@ MxBool MxControlPresenter::FUN_10044270(MxS32 p_x, MxS32 p_y, MxVideoPresenter*
MxBool MxControlPresenter::FUN_10044480(LegoControlManagerEvent* p_event, MxPresenter* p_presenter)
{
if (IsEnabled()) {
switch (p_event->GetType()) {
switch (p_event->GetNotification()) {
case c_notificationButtonUp:
if (m_unk0x4c == 0 || m_unk0x4c == 2 || m_unk0x4c == 3) {
p_event->SetClickedObjectId(m_action->GetObjectId());
p_event->SetClickedAtom(m_action->GetAtomId().GetInternal());
VTable0x6c(0);
p_event->SetType(c_notificationControl);
p_event->SetNotification(c_notificationControl);
p_event->SetUnknown0x28(m_unk0x4e);
return TRUE;
}
@@ -194,7 +194,7 @@ MxBool MxControlPresenter::FUN_10044480(LegoControlManagerEvent* p_event, MxPres
p_event->SetClickedObjectId(m_action->GetObjectId());
p_event->SetClickedAtom(m_action->GetAtomId().GetInternal());
VTable0x6c(m_unk0x56);
p_event->SetType(c_notificationControl);
p_event->SetNotification(c_notificationControl);
p_event->SetUnknown0x28(m_unk0x4e);
return TRUE;
}