diff --git a/source/games/blood/src/actor.cpp b/source/games/blood/src/actor.cpp index 348460b9b..fbb38aa45 100644 --- a/source/games/blood/src/actor.cpp +++ b/source/games/blood/src/actor.cpp @@ -7451,11 +7451,6 @@ void HITINFO::set(hitdata_t* hit) } -void actPostSprite(int nSprite, int nStatus) -{ - actPostSprite(&bloodActors[nSprite], nStatus); -} - void aiSetTarget_(XSPRITE* pXSprite, int nTarget) { aiSetTarget(&bloodActors[pXSprite->reference], &bloodActors[nTarget]); diff --git a/source/games/blood/src/actor.h b/source/games/blood/src/actor.h index b89652933..d0aa842d1 100644 --- a/source/games/blood/src/actor.h +++ b/source/games/blood/src/actor.h @@ -240,7 +240,6 @@ int actGetRespawnTime(DBloodActor *pSprite); bool actCheckRespawn(DBloodActor *pSprite); bool actCanSplatWall(int nWall); void actFireVector(DBloodActor *pShooter, int a2, int a3, int a4, int a5, int a6, VECTOR_TYPE vectorType); -void actPostSprite(int nSprite, int nStatus); void actPostSprite(DBloodActor* actor, int status); void actPostProcess(void); void MakeSplash(DBloodActor *actor); diff --git a/source/games/blood/src/aiunicult.cpp b/source/games/blood/src/aiunicult.cpp index 579529c64..77f25e703 100644 --- a/source/games/blood/src/aiunicult.cpp +++ b/source/games/blood/src/aiunicult.cpp @@ -1481,7 +1481,7 @@ void removeLeech(DBloodActor* actLeech, bool delSprite) if (delSprite) { pLeech->type = kSpriteDecoration; - actPostSprite(pLeech->index, kStatFree); + actPostSprite(actLeech, kStatFree); } @@ -1842,7 +1842,7 @@ void dudeLeechOperate(DBloodActor* actor, const EVENT& event) if (event.cmd == kCmdOff) { - actPostSprite(pSprite->index, kStatFree); + actPostSprite(actor, kStatFree); return; } diff --git a/source/games/blood/src/nnexts.cpp b/source/games/blood/src/nnexts.cpp index 7a9e932cb..d72730f0e 100644 --- a/source/games/blood/src/nnexts.cpp +++ b/source/games/blood/src/nnexts.cpp @@ -5940,15 +5940,14 @@ int useCondition(spritetype* pSource, XSPRITE* pXSource, EVENT event) { void useRandomItemGen(spritetype* pSource, XSPRITE* pXSource) { // let's first search for previously dropped items and remove it if (pXSource->dropMsg > 0) { - int nItem; - StatIterator it(kStatItem); - while ((nItem = it.NextIndex()) >= 0) + BloodStatIterator it(kStatItem); + while (auto iactor = it.Next()) { - spritetype* pItem = &sprite[nItem]; + spritetype* pItem = &iactor->s(); if ((unsigned int)pItem->type == pXSource->dropMsg && pItem->x == pSource->x && pItem->y == pSource->y && pItem->z == pSource->z) { gFX.fxSpawnActor((FX_ID)29, pSource->sectnum, pSource->x, pSource->y, pSource->z, 0); pItem->type = kSpriteDecoration; - actPostSprite(nItem, kStatFree); + actPostSprite(iactor, kStatFree); break; } } diff --git a/source/games/blood/src/player.cpp b/source/games/blood/src/player.cpp index a93f2f986..00e636ac4 100644 --- a/source/games/blood/src/player.cpp +++ b/source/games/blood/src/player.cpp @@ -1190,7 +1190,7 @@ void PickUp(PLAYER *pPlayer, spritetype *pSprite) } if (!actCheckRespawn(actor)) - actPostSprite(pSprite->index, kStatFree); + actPostSprite(actor, kStatFree); pPlayer->pickupEffect = 30; if (pPlayer == gMe) { @@ -1394,7 +1394,7 @@ void ProcessInput(PLAYER *pPlayer) { if (pPlayer->pSprite) pPlayer->pSprite->type = kThingBloodChunks; - actPostSprite(pPlayer->nSprite, kStatThing); + actPostSprite(pPlayer->actor(), kStatThing); seqSpawn(pPlayer->pDudeInfo->seqStartID+15, 3, pPlayer->pSprite->extra, -1); playerReset(pPlayer); if (gGameOptions.nGameType == 0 && numplayers == 1) diff --git a/source/games/blood/src/triggers.cpp b/source/games/blood/src/triggers.cpp index 8208366a4..3da3491bc 100644 --- a/source/games/blood/src/triggers.cpp +++ b/source/games/blood/src/triggers.cpp @@ -263,7 +263,7 @@ void LifeLeechOperate(spritetype *pSprite, XSPRITE *pXSprite, EVENT event) { missile->SetOwner(actor); pXSprite->stateTimer = 1; - evPostActor(&bloodActors[pSprite->index], t2, kCallbackLeechStateTimer); + evPostActor(actor, t2, kCallbackLeechStateTimer); pXSprite->data3 = ClipLow(pXSprite->data3-1, 0); } pSprite->ang = angBak; @@ -274,7 +274,7 @@ void LifeLeechOperate(spritetype *pSprite, XSPRITE *pXSprite, EVENT event) return; } } - actPostSprite(pSprite->index, kStatFree); + actPostSprite(actor, kStatFree); } void ActivateGenerator(int); @@ -344,11 +344,11 @@ void OperateSprite(int nSprite, XSPRITE *pXSprite, EVENT event) break; case kThingWallCrack: if (SetSpriteState(nSprite, pXSprite, 0)) - actPostSprite(nSprite, kStatFree); + actPostSprite(actor, kStatFree); break; case kThingCrateFace: if (SetSpriteState(nSprite, pXSprite, 0)) - actPostSprite(nSprite, kStatFree); + actPostSprite(actor, kStatFree); break; case kTrapZapSwitchable: switch (event.cmd) {