mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 00:14:22 +00:00
MxTickleManager mostly done (#94)
* Checkpoint to show MxTickleManager::SetClientTickleInterval match. * Match MxTickleManager::~MxTickleManager, obliterate MxTickleManager::SetClientTickleInterval. * Make conditional more realistic, move MxTime to mxtypes.h, add TODO for MxTickleManager::Tickle.
This commit is contained in:
@@ -2,20 +2,77 @@
|
||||
#define MXTICKLEMANAGER_H
|
||||
|
||||
#include "mxcore.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
#include "compat.h"
|
||||
|
||||
class MxTickleClient
|
||||
{
|
||||
public:
|
||||
MxTickleClient(MxCore *p_client, MxTime p_interval);
|
||||
|
||||
inline MxCore *GetClient() const
|
||||
{
|
||||
return m_client;
|
||||
}
|
||||
|
||||
inline MxTime GetTickleInterval() const
|
||||
{
|
||||
return m_interval;
|
||||
}
|
||||
|
||||
inline MxTime GetLastUpdateTime() const
|
||||
{
|
||||
return m_lastUpdateTime;
|
||||
}
|
||||
|
||||
inline MxU16 GetFlags() const
|
||||
{
|
||||
return m_flags;
|
||||
}
|
||||
|
||||
inline void SetTickleInterval(MxTime p_interval)
|
||||
{
|
||||
m_interval = p_interval;
|
||||
}
|
||||
|
||||
inline void SetLastUpdateTime(MxTime p_lastUpdateTime)
|
||||
{
|
||||
m_lastUpdateTime = p_lastUpdateTime;
|
||||
}
|
||||
|
||||
inline void SetFlags(MxU16 flags)
|
||||
{
|
||||
m_flags = flags;
|
||||
}
|
||||
|
||||
private:
|
||||
MxCore *m_client; // 0x0
|
||||
MxTime m_interval; // 0x4
|
||||
MxTime m_lastUpdateTime; // 0x8
|
||||
MxU16 m_flags; // 0xc
|
||||
};
|
||||
|
||||
class MxTickleClientPtrList : public List<MxTickleClient *>
|
||||
{};
|
||||
|
||||
// VTABLE 0x100d86d8
|
||||
class MxTickleManager : public MxCore
|
||||
{
|
||||
public:
|
||||
virtual ~MxTickleManager();
|
||||
inline MxTickleManager() : MxCore(), m_clients() {}
|
||||
virtual ~MxTickleManager(); // vtable+0x0 (scalar deleting destructor)
|
||||
|
||||
virtual MxLong Tickle();
|
||||
virtual const char *ClassName() const;
|
||||
virtual MxBool IsA(const char *name) const;
|
||||
virtual void Register(MxCore *p_listener, int p_milliseconds);
|
||||
virtual void Unregister(MxCore *p_listener);
|
||||
virtual void vtable1c(void *v, int p);
|
||||
virtual void vtable20();
|
||||
virtual MxResult Tickle(); // vtable+0x8
|
||||
virtual void RegisterClient(MxCore *p_client, MxTime p_interval); // vtable+0x14
|
||||
virtual void UnregisterClient(MxCore *p_client); // vtable+0x18
|
||||
virtual void SetClientTickleInterval(MxCore *p_client, MxTime p_interval); // vtable+0x1c
|
||||
virtual MxTime GetClientTickleInterval(MxCore *p_client); // vtable+0x20
|
||||
|
||||
private:
|
||||
MxTickleClientPtrList m_clients; // 0x8
|
||||
};
|
||||
|
||||
#define TICKLE_MANAGER_NOT_FOUND 0x80000000
|
||||
|
||||
#endif // MXTICKLEMANAGER_H
|
||||
|
Reference in New Issue
Block a user