- nnExtEraseModernStuff

This commit is contained in:
Christoph Oelckers 2021-08-27 14:11:59 +02:00
parent 9a1bcdbc84
commit 5f56423e88
3 changed files with 18 additions and 7 deletions

View file

@ -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
}

View file

@ -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

View file

@ -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);