mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-21 07:11:16 +00:00
Checkpoint before anything too crazy with param
This commit is contained in:
parent
e98319995b
commit
7da2d6a4e8
@ -1,21 +1,21 @@
|
||||
#include "legoomni.h"
|
||||
#include "mxautolocker.h"
|
||||
#include "mxcore.h"
|
||||
#include "mxnotificationmanager.h"
|
||||
#include "mxparam.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
// OFFSET: LEGO1 0x100ac220 STUB
|
||||
MxNotification::MxNotification(MxCore *p_destination, void *p_vtable)
|
||||
// OFFSET: LEGO1 0x100ac220
|
||||
MxNotification::MxNotification(MxCore *p_destination, MxParam *p_param)
|
||||
{
|
||||
m_destination = p_destination;
|
||||
// TODO: Call p_vtable+0x4, assign result to m_param.
|
||||
m_param = NULL;
|
||||
m_param = p_param->Clone();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100ac240 STUB
|
||||
// OFFSET: LEGO1 0x100ac240
|
||||
MxNotification::~MxNotification()
|
||||
{
|
||||
// TODO
|
||||
//delete m_param;
|
||||
delete m_param;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100ac250
|
||||
@ -35,10 +35,7 @@ MxNotificationManager::~MxNotificationManager()
|
||||
delete m_queue;
|
||||
m_queue = NULL;
|
||||
|
||||
MxTickleManager *tickleManager = TickleManager();
|
||||
// TODO
|
||||
//tickleManager->Unregister(this);
|
||||
tickleManager->vtable18();
|
||||
TickleManager()->vtable18(this);
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100ac800
|
||||
@ -77,10 +74,7 @@ MxResult MxNotificationManager::Create(int p_unk1, int p_unk2)
|
||||
result = FAILURE;
|
||||
}
|
||||
else {
|
||||
MxTickleManager *tickleManager = TickleManager();
|
||||
// TODO
|
||||
//tickleManager->Register(this, 10);
|
||||
tickleManager->vtable14();
|
||||
TickleManager()->vtable14(this, 10);
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -122,7 +116,7 @@ void MxNotificationManager::FlushPending(MxCore *p_listener)
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100ac6c0
|
||||
MxResult MxNotificationManager::Send(MxCore *p_listener, void *p_vtable)
|
||||
MxResult MxNotificationManager::Send(MxCore *p_listener, MxParam *p_param)
|
||||
{
|
||||
MxAutoLocker lock(&m_lock);
|
||||
|
||||
@ -135,7 +129,7 @@ MxResult MxNotificationManager::Send(MxCore *p_listener, void *p_vtable)
|
||||
return FAILURE;
|
||||
}
|
||||
else {
|
||||
MxNotification *notif = new MxNotification(p_listener, p_vtable);
|
||||
MxNotification *notif = new MxNotification(p_listener, p_param);
|
||||
if (notif != NULL) {
|
||||
m_queue->push_back(notif);
|
||||
return SUCCESS;
|
||||
|
||||
@ -9,38 +9,38 @@
|
||||
|
||||
class MxNotification
|
||||
{
|
||||
public:
|
||||
MxCore *m_destination;
|
||||
MxParam *m_param;
|
||||
public:
|
||||
MxCore *m_destination;
|
||||
MxParam *m_param;
|
||||
|
||||
MxNotification(MxCore *p_destination, void *p_vtable);
|
||||
~MxNotification();
|
||||
MxNotification(MxCore *p_destination, MxParam *p_param);
|
||||
~MxNotification();
|
||||
};
|
||||
|
||||
// VTABLE 0x100dc078
|
||||
class MxNotificationManager : public MxCore
|
||||
{
|
||||
private:
|
||||
List<MxNotification *> *m_queue;
|
||||
List<MxNotification *> *m_sendList;
|
||||
MxCriticalSection m_lock;
|
||||
int m_unk2c;
|
||||
List<unsigned int> m_listenerIds;
|
||||
MxBool m_active;
|
||||
private:
|
||||
List<MxNotification *> *m_queue; // 0x8
|
||||
List<MxNotification *> *m_sendList; // 0xc
|
||||
MxCriticalSection m_lock; // 0x10
|
||||
int m_unk2c; // 0x2c
|
||||
List<unsigned int> m_listenerIds; // 0x30
|
||||
MxBool m_active; // 0x3c
|
||||
|
||||
public:
|
||||
MxNotificationManager();
|
||||
virtual ~MxNotificationManager(); // vtable+0x0
|
||||
public:
|
||||
MxNotificationManager();
|
||||
virtual ~MxNotificationManager(); // vtable+0x0
|
||||
|
||||
virtual long Tickle(); // vtable+0x8
|
||||
// TODO: Where does this method come from?
|
||||
virtual MxResult Create(int p_unk1, int p_unk2); // vtable+0x14
|
||||
void Register(MxCore *p_listener);
|
||||
void Unregister(MxCore *p_listener);
|
||||
MxResult Send(MxCore *p_listener, void *p_vtable);
|
||||
virtual long Tickle(); // vtable+0x8
|
||||
// TODO: Where does this method come from?
|
||||
virtual MxResult Create(int p_unk1, int p_unk2); // vtable+0x14
|
||||
void Register(MxCore *p_listener);
|
||||
void Unregister(MxCore *p_listener);
|
||||
MxResult Send(MxCore *p_listener, MxParam *p_param);
|
||||
|
||||
private:
|
||||
void FlushPending(MxCore *p_listener);
|
||||
private:
|
||||
void FlushPending(MxCore *p_listener);
|
||||
};
|
||||
|
||||
#endif // MXNOTIFICATIONMANAGER_H
|
||||
|
||||
@ -12,8 +12,10 @@ class MxTickleManager : public MxCore
|
||||
virtual MxLong Tickle();
|
||||
virtual const char *ClassName() const;
|
||||
virtual MxBool IsA(const char *name) const;
|
||||
virtual void vtable14();
|
||||
virtual void vtable18();
|
||||
// May be Register(obj, milliseconds);
|
||||
virtual void vtable14(MxCore *p_unk1, int p_unk2);
|
||||
// May be Unregister(obj);
|
||||
virtual void vtable18(MxCore *p_unk1);
|
||||
virtual void vtable1c(void *v, int p);
|
||||
virtual void vtable20();
|
||||
};
|
||||
|
||||
Loading…
Reference in New Issue
Block a user