diff --git a/source/games/blood/src/blood.cpp b/source/games/blood/src/blood.cpp index 83ac37784..1ec375334 100644 --- a/source/games/blood/src/blood.cpp +++ b/source/games/blood/src/blood.cpp @@ -123,10 +123,12 @@ void StartLevel(MapRecord* level, bool newgame) int modernTypesErased = 0; for (int i = 0; i < kMaxSprites; i++) { - spritetype* pSprite = &sprite[i]; - if (pSprite->statnum < kMaxStatus && pSprite->extra > 0) { + DBloodActor* actor = &bloodActors[i]; + spritetype* pSprite = &actor->s(); + if (pSprite->statnum < kMaxStatus && actor->hasX()) + { - XSPRITE* pXSprite = &xsprite[pSprite->extra]; + XSPRITE* pXSprite = &actor->x(); if ((pXSprite->lSkill & (1 << gGameOptions.nDifficulty)) || (pXSprite->lS && gGameOptions.nGameType == 0) || (pXSprite->lB && gGameOptions.nGameType == 2) || (pXSprite->lT && gGameOptions.nGameType == 3) || (pXSprite->lC && gGameOptions.nGameType == 1)) { @@ -137,7 +139,7 @@ void StartLevel(MapRecord* level, bool newgame) #ifdef NOONE_EXTENSIONS - if (!gModernMap && nnExtEraseModernStuff(pSprite, pXSprite)) + if (!gModernMap && nnExtEraseModernStuff(actor)) modernTypesErased++; #endif } diff --git a/source/games/blood/src/nnexts.cpp b/source/games/blood/src/nnexts.cpp index 44416e240..8bb08c2ba 100644 --- a/source/games/blood/src/nnexts.cpp +++ b/source/games/blood/src/nnexts.cpp @@ -369,8 +369,17 @@ bool nnExtIsImmune(DBloodActor* actor, int dmgType, int minScale) return true; } -bool nnExtEraseModernStuff(spritetype* pSprite, XSPRITE* pXSprite) { - +//--------------------------------------------------------------------------- +// +// +// +//--------------------------------------------------------------------------- + +bool nnExtEraseModernStuff(DBloodActor* actor) +{ + auto pSprite = &actor->s(); + auto pXSprite = &actor->x(); + bool erased = false; switch (pSprite->type) { // erase all modern types if the map is not extended diff --git a/source/games/blood/src/nnexts.h b/source/games/blood/src/nnexts.h index 75fc70fe1..0a4fef669 100644 --- a/source/games/blood/src/nnexts.h +++ b/source/games/blood/src/nnexts.h @@ -292,7 +292,7 @@ inline bool xsprIsFine(spritetype* pSpr) { return (pSpr && xspriRangeIsFine(pSpr->extra) && !(pSpr->flags & kHitagFree) && !(pSpr->flags & kHitagRespawn)); } // - FUNCTIONS ------------------------------------------------------------------ -bool nnExtEraseModernStuff(spritetype* pSprite, XSPRITE* pXSprite); +bool nnExtEraseModernStuff(DBloodActor* actor); void nnExtInitModernStuff(bool bSaveLoad); void nnExtProcessSuperSprites(void); bool nnExtIsImmune(DBloodActor* pSprite, int dmgType, int minScale = 16);