mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 23:48:12 -05:00
Implement/match MxOmni::ActionSourceEquals (#462)
This commit is contained in:
parent
ee7241f73d
commit
1c4f772a82
2 changed files with 19 additions and 6 deletions
|
@ -57,7 +57,7 @@ class MxOmni : public MxCore {
|
|||
virtual MxBool IsTimerRunning() { return m_timerRunning; }; // vtable+40
|
||||
|
||||
static void SetInstance(MxOmni* p_instance);
|
||||
static MxBool FUN_100b06b0(MxDSAction* p_action, const char* p_name);
|
||||
static MxBool ActionSourceEquals(MxDSAction* p_action, const char* p_name);
|
||||
|
||||
HWND GetWindowHandle() const { return this->m_windowHandle; }
|
||||
MxObjectFactory* GetObjectFactory() const { return this->m_objectFactory; }
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include "mxactionnotificationparam.h"
|
||||
#include "mxatomidcounter.h"
|
||||
#include "mxautolocker.h"
|
||||
#include "mxdsmultiaction.h"
|
||||
#include "mxeventmanager.h"
|
||||
#include "mxmusicmanager.h"
|
||||
#include "mxnotificationmanager.h"
|
||||
|
@ -377,11 +378,23 @@ void MxOmni::DestroyInstance()
|
|||
}
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100b06b0
|
||||
MxBool MxOmni::FUN_100b06b0(MxDSAction* p_action, const char* p_name)
|
||||
// FUNCTION: LEGO1 0x100b06b0
|
||||
MxBool MxOmni::ActionSourceEquals(MxDSAction* p_action, const char* p_name)
|
||||
{
|
||||
// TODO
|
||||
return FAILURE;
|
||||
if (!strcmp(p_action->GetSourceName(), p_name))
|
||||
return TRUE;
|
||||
|
||||
if (p_action->IsA("MxDSMultiAction")) {
|
||||
MxDSActionListCursor cursor(((MxDSMultiAction*) p_action)->GetActionList());
|
||||
MxDSAction* action;
|
||||
|
||||
while (cursor.Next(action)) {
|
||||
if (ActionSourceEquals(action, p_name))
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100b07f0
|
||||
|
@ -404,7 +417,7 @@ MxLong MxOmni::HandleActionEnd(MxParam& p_param)
|
|||
if (controller != NULL) {
|
||||
action = controller->GetUnk0x54().Find(action, FALSE);
|
||||
if (action) {
|
||||
if (FUN_100b06b0(action, "LegoLoopingAnimPresenter") == FALSE) {
|
||||
if (ActionSourceEquals(action, "LegoLoopingAnimPresenter") == FALSE) {
|
||||
delete controller->GetUnk0x54().Find(action, TRUE);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue