isle-portable/LEGO1/mxticklemanager.h

79 lines
1.6 KiB
C
Raw Normal View History

2023-04-27 22:19:39 -04:00
#ifndef MXTICKLEMANAGER_H
#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
};
2023-08-12 13:32:43 -04:00
class MxTickleClientPtrList : public list<MxTickleClient *>
{};
// VTABLE 0x100d86d8
2023-05-22 00:45:25 -04:00
class MxTickleManager : public MxCore
2023-04-27 22:19:39 -04:00
{
public:
inline MxTickleManager() : MxCore(), m_clients() {}
virtual ~MxTickleManager(); // vtable+0x0 (scalar deleting destructor)
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
2023-04-27 22:19:39 -04:00
};
#define TICKLE_MANAGER_NOT_FOUND 0x80000000
2023-04-27 22:19:39 -04:00
#endif // MXTICKLEMANAGER_H