diff --git a/source/games/blood/src/bloodactor.h b/source/games/blood/src/bloodactor.h index 37fdfe868..ff4fb2b0d 100644 --- a/source/games/blood/src/bloodactor.h +++ b/source/games/blood/src/bloodactor.h @@ -174,12 +174,6 @@ using BloodSectIterator = TSectIterator; using BloodSpriteIterator = TSpriteIterator; using BloodLinearSpriteIterator = TLinearSpriteIterator; -inline int DeleteSprite(DBloodActor* nSprite) -{ - if (nSprite) return DeleteSprite(nSprite->GetSpriteIndex()); - return 0; -} - inline void GetActorExtents(DBloodActor* actor, int* top, int* bottom) { GetSpriteExtents(&actor->s(), top, bottom); diff --git a/source/games/blood/src/db.cpp b/source/games/blood/src/db.cpp index a8aa88f5b..7d511f15e 100644 --- a/source/games/blood/src/db.cpp +++ b/source/games/blood/src/db.cpp @@ -189,23 +189,24 @@ DBloodActor* InsertSprite(sectortype* pSector, int nStat) return actor; } -int DeleteSprite(int nSprite) + +inline int DeleteSprite(DBloodActor* actor) { - auto sp = &sprite[nSprite]; - FVector3 pos = GetSoundPos(&sp->pos); - soundEngine->RelinkSound(SOURCE_Actor, &sprite[nSprite], nullptr, &pos); + auto sp = &actor->s(); + FVector3 pos = GetSoundPos(&actor->s().pos); + soundEngine->RelinkSound(SOURCE_Actor, actor, nullptr, &pos); assert(sp->statnum >= 0 && sp->statnum < kMaxStatus); - RemoveSpriteStat(nSprite); + RemoveSpriteStat(actor->GetSpriteIndex()); assert(sp->insector()); - RemoveSpriteSect(nSprite); - InsertSpriteStat(nSprite, kMaxStatus); + RemoveSpriteSect(actor->GetSpriteIndex()); + InsertSpriteStat(actor->GetSpriteIndex(), kMaxStatus); #ifdef NOONE_EXTENSIONS - for (auto& ctrl : gPlayerCtrl) if (ctrl.qavScene.initiator == &bloodActors[nSprite]) ctrl.qavScene.initiator = nullptr; + for (auto& ctrl : gPlayerCtrl) if (ctrl.qavScene.initiator == actor) ctrl.qavScene.initiator = nullptr; #endif Numsprites--; - return nSprite; + return 0; } int ChangeSpriteSect(int nSprite, int nSector) diff --git a/source/games/blood/src/db.h b/source/games/blood/src/db.h index fdd55be32..d9a3de6f1 100644 --- a/source/games/blood/src/db.h +++ b/source/games/blood/src/db.h @@ -118,7 +118,7 @@ void InsertSpriteStat(int nSprite, int nStat); void RemoveSpriteStat(int nSprite); void qinitspritelists(void); DBloodActor* InsertSprite(sectortype* pSector, int nStat); -int DeleteSprite(int nSprite); +int DeleteSprite(DBloodActor* actor); int ChangeSpriteSect(int nSprite, int nSector); int qchangespritesect(short nSprite, short nSector); int ChangeSpriteStat(int nSprite, int nStatus);