From e174ac5f2ec2dc6fd6429afd1d80e2915c7465f8 Mon Sep 17 00:00:00 2001 From: Human Gamer <39096122+HumanGamer@users.noreply.github.com> Date: Wed, 23 Jun 2021 15:17:24 -0500 Subject: [PATCH] Small code cleanup --- engine/source/game/gameConnection.cpp | 25 ++++++++++----- engine/source/sim/processList.cpp | 44 ++++++--------------------- 2 files changed, 27 insertions(+), 42 deletions(-) diff --git a/engine/source/game/gameConnection.cpp b/engine/source/game/gameConnection.cpp index 4ceb7d90..49f546ff 100644 --- a/engine/source/game/gameConnection.cpp +++ b/engine/source/game/gameConnection.cpp @@ -887,12 +887,17 @@ void GameConnection::ghostPreRead(NetObject* nobj, bool newGhost) { if ((nobj->getType() & GameBaseHiFiObjectType) != 0 && !newGhost) { - GameBase* obj = (GameBase*)nobj; + AssertFatal(dynamic_cast(nobj),"Should be a gamebase"); + GameBase* obj = static_cast(nobj); + + // set next cache entry to start obj->beginTickCacheList(); - TickCacheEntry* entry = obj->incTickCacheList(false); - if (entry) + + // reset to old state because we are about to unpack (and then tick forward) + TickCacheEntry* tce = obj->incTickCacheList(false); + if (tce) { - BitStream bs(entry->packetData, TickCacheEntry::MaxPacketSize); + BitStream bs(tce->packetData, TickCacheEntry::MaxPacketSize); obj->readPacketData(this, &bs); } } @@ -902,15 +907,19 @@ void GameConnection::ghostReadExtra(NetObject* nobj, BitStream* bstream, bool ne { if ((nobj->getType() & GameBaseHiFiObjectType) != 0) { - GameBase* obj = (GameBase*)nobj; + AssertFatal(dynamic_cast(nobj),"Should be a gamebase"); + GameBase* obj = static_cast(nobj); + // mark ghost so that it updates correctly obj->setGhostUpdated(true); obj->setNewGhost(newGhost); - obj->beginTickCacheList(); - TickCacheEntry* entry = obj->incTickCacheList(true); + // set next cache entry to start + obj->beginTickCacheList(); - BitStream bs(entry->packetData, TickCacheEntry::MaxPacketSize); + // save state for future update + TickCacheEntry* tce = obj->incTickCacheList(true); + BitStream bs(tce->packetData, TickCacheEntry::MaxPacketSize); obj->writePacketData(this, &bs); } } diff --git a/engine/source/sim/processList.cpp b/engine/source/sim/processList.cpp index 6534db81..86b5f37e 100644 --- a/engine/source/sim/processList.cpp +++ b/engine/source/sim/processList.cpp @@ -283,49 +283,25 @@ bool ProcessList::advanceClientTime(SimTime timeDelta) if (!tickCount || mLastTick == targetTick) { LABEL_19: - if (mSkipAdvanceObjectsMs) - { - mSkipAdvanceObjectsMs -= timeDelta; - } else + if (!mSkipAdvanceObjectsMs) { - ProcessObject* next = mHead.mProcessLink.next; - ProcessObject* pNext = next; mLastDelta = (float)(-(targetTime + 1) & 0x1F) * 0.03125f; AssertFatal(mLastDelta >= 0.0f && mLastDelta <= 1.0f, "Doh! That would be bad."); - if (next != &mHead) + for ( ProcessObject *pobj = mHead.mProcessLink.next; pobj != &mHead; pobj = pobj->mProcessLink.next ) { - while(true) - { - GameBase* gb = getGameBase(next); - if (gb->mProcessTick) - { - gb->interpolateTick(mLastDelta); - next = pNext; - } - - pNext = next->mProcessLink.next; - if (pNext == &mHead) - break; - next = next->mProcessLink.next; - } + GameBase* gb = getGameBase(pobj); + if ( gb->mProcessTick) + gb->interpolateTick( mLastDelta ); } F32 dt = F32(timeDelta) / 1000; - ProcessObject* next2 = mHead.mProcessLink.next; - ProcessObject* pNext2 = next2; - if (next2 != &mHead) + for ( ProcessObject *pobj = mHead.mProcessLink.next; pobj != &mHead; pobj = pobj->mProcessLink.next) { - while (true) - { - GameBase* gb = getGameBase(next2); - gb->advanceTime(dt); - - pNext2 = pNext2->mProcessLink.next; - if (pNext2 == &mHead) - break; - next2 = pNext2; - } + GameBase* gb = getGameBase(pobj); + gb->advanceTime( dt ); } + } else { + mSkipAdvanceObjectsMs -= timeDelta; } mLastTime = targetTime;