From 9ef4f0fa99aeb450d5c2ad60e9f599ac6938fa5d Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 21 Oct 2021 00:00:26 +0200 Subject: [PATCH] - Gravity function. --- source/games/exhumed/src/aistuff.h | 6 +----- source/games/exhumed/src/move.cpp | 7 ++++--- source/games/exhumed/src/object.cpp | 3 ++- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/source/games/exhumed/src/aistuff.h b/source/games/exhumed/src/aistuff.h index b4dbfa6b2..18db5df00 100644 --- a/source/games/exhumed/src/aistuff.h +++ b/source/games/exhumed/src/aistuff.h @@ -221,11 +221,7 @@ void MoveThings(); void ResetMoveFifo(); void InitChunks(); void InitPushBlocks(); -void Gravity(short nSprite); -inline void Gravity(DExhumedActor* actor) -{ - Gravity(actor->GetSpriteIndex()); -} +void Gravity(DExhumedActor* actor); short UpdateEnemy(short *nEnemy); DExhumedActor* UpdateEnemy(DExhumedActor** ppEnemy) { diff --git a/source/games/exhumed/src/move.cpp b/source/games/exhumed/src/move.cpp index d5ae14847..075430cea 100644 --- a/source/games/exhumed/src/move.cpp +++ b/source/games/exhumed/src/move.cpp @@ -612,9 +612,9 @@ int movesprite(short nSprite, int dx, int dy, int dz, int, int flordist, unsigne return nRet; } -void Gravity(short nSprite) +void Gravity(DExhumedActor* actor) { - auto pSprite = &sprite[nSprite]; + auto pSprite = &actor->s(); short nSector = pSprite->sectnum; if (SectFlag[nSector] & kSectUnderwater) @@ -1503,9 +1503,10 @@ void AICreatureChunk::Tick(RunListEvent* ev) { int nSprite = RunData[ev->nRun].nObjIndex; assert(nSprite >= 0 && nSprite < kMaxSprites); + auto pActor = &exhumedActors[nSprite]; auto pSprite = &sprite[nSprite]; - Gravity(nSprite); + Gravity(pActor); int nSector = pSprite->sectnum; pSprite->pal = sector[nSector].ceilingpal; diff --git a/source/games/exhumed/src/object.cpp b/source/games/exhumed/src/object.cpp index 8064a398e..5d66903f0 100644 --- a/source/games/exhumed/src/object.cpp +++ b/source/games/exhumed/src/object.cpp @@ -2042,6 +2042,7 @@ void AIObject::Tick(RunListEvent* ev) short nObject = RunData[ev->nRun].nObjIndex; auto pObject = &ObjectList[nObject]; + auto pActor = &exhumedActors[pObject->nSprite];// ev->pObjActor; short nSprite = pObject->nSprite; auto pSprite = &sprite[nSprite]; short nStat = pSprite->statnum; @@ -2052,7 +2053,7 @@ void AIObject::Tick(RunListEvent* ev) } if (nStat != kStatExplodeTarget) { - Gravity(nSprite); + Gravity(pActor); } // do animation