diff --git a/LEGO1/mxticklemanager.cpp b/LEGO1/mxticklemanager.cpp index 961d0651..38cdd37f 100644 --- a/LEGO1/mxticklemanager.cpp +++ b/LEGO1/mxticklemanager.cpp @@ -29,16 +29,18 @@ MxTickleManager::~MxTickleManager() } } +// TODO: Match. // OFFSET: LEGO1 0x100bdde0 MxResult MxTickleManager::Tickle() { MxTime time = Timer()->GetTime(); MxTickleClientPtrList::iterator it = m_clients.begin(); + while (it != m_clients.end()) { MxTickleClient *client = *it; if ((client->GetFlags() & TICKLE_MANAGER_FLAG_DESTROY) == 0) { - if (client->GetLastUpdateTime() != time && time <= client->GetLastUpdateTime()) + if (client->GetLastUpdateTime() >= time) client->SetLastUpdateTime(-client->GetTickleInterval()); if ((client->GetTickleInterval() + client->GetLastUpdateTime()) < time) { diff --git a/LEGO1/mxticklemanager.h b/LEGO1/mxticklemanager.h index 71216055..103d3721 100644 --- a/LEGO1/mxticklemanager.h +++ b/LEGO1/mxticklemanager.h @@ -6,8 +6,6 @@ #include "compat.h" -typedef MxS32 MxTime; - class MxTickleClient { public: diff --git a/LEGO1/mxtypes.h b/LEGO1/mxtypes.h index d17ac09a..1f0aaac7 100644 --- a/LEGO1/mxtypes.h +++ b/LEGO1/mxtypes.h @@ -25,6 +25,8 @@ typedef int MxLong; typedef unsigned int MxULong; #endif +typedef MxS32 MxTime; + typedef MxLong MxResult; const MxResult SUCCESS = 0; const MxResult FAILURE = -1;