Skip to content

Commit

Permalink
- Blood: Fix DeleteSprite
Browse files Browse the repository at this point in the history
  • Loading branch information
coelckers committed Dec 5, 2021
1 parent 251ef8c commit 7fd6038
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 16 deletions.
6 changes: 0 additions & 6 deletions source/games/blood/src/bloodactor.h
Expand Up @@ -174,12 +174,6 @@ using BloodSectIterator = TSectIterator<DBloodActor>;
using BloodSpriteIterator = TSpriteIterator<DBloodActor>;
using BloodLinearSpriteIterator = TLinearSpriteIterator<DBloodActor>;

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);
Expand Down
19 changes: 10 additions & 9 deletions source/games/blood/src/db.cpp
Expand Up @@ -190,23 +190,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)
Expand Down
2 changes: 1 addition & 1 deletion source/games/blood/src/db.h
Expand Up @@ -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);
Expand Down

0 comments on commit 7fd6038

Please sign in to comment.