diff --git a/source/games/blood/src/ai.cpp b/source/games/blood/src/ai.cpp index 74f26a645..cf3914c1a 100644 --- a/source/games/blood/src/ai.cpp +++ b/source/games/blood/src/ai.cpp @@ -1863,6 +1863,14 @@ void aiInitSprite(spritetype *pSprite) case kDudeTentacleFire: aiNewState(actor, &tentacleIdle); break; +#ifdef NOONE_EXTENSIONS + case kDudeModernCustom: + case kDudeModernCustomBurning: + if (!gModernMap) break; + aiGenDudeInitSprite(pSprite, pXSprite); + genDudePrepare(pSprite, kGenDudePropertyAll); + break; +#endif default: aiNewState(actor, &genIdle); break; @@ -1918,11 +1926,6 @@ void aiInitSprite(spritetype *pSprite) #ifdef NOONE_EXTENSIONS if (gModernMap) { - if (pSprite->type == kDudeModernCustom) { - aiGenDudeInitSprite(pSprite, pXSprite); - genDudePrepare(pSprite, kGenDudePropertyAll); - } - if (pXSprite->dudeFlag4) { // restore dude's path diff --git a/source/games/blood/src/aiunicult.cpp b/source/games/blood/src/aiunicult.cpp index d45617c01..960c46c3c 100644 --- a/source/games/blood/src/aiunicult.cpp +++ b/source/games/blood/src/aiunicult.cpp @@ -1324,7 +1324,6 @@ void scaleDamage(XSPRITE* pXSprite) { case kThingPodFireBall: case kThingNapalmBall: curScale[kDmgBurn] = 32; - curScale[kDmgExplode] -= 32; break; case kMissileLifeLeechRegular: curScale[kDmgBurn] = 60 + Random(4); @@ -1338,7 +1337,7 @@ void scaleDamage(XSPRITE* pXSprite) { case kMissileFireballCerberus: case kMissileFireballTchernobog: curScale[kDmgBurn] = 50; - curScale[kDmgExplode] = 32; + curScale[kDmgExplode] -= 32; curScale[kDmgFall] = 65 + Random(15); break; case kThingTNTBarrel: @@ -1348,7 +1347,7 @@ void scaleDamage(XSPRITE* pXSprite) { case kThingArmedTNTStick: case kModernThingTNTProx: curScale[kDmgBurn] -= 32; - curScale[kDmgExplode] = 32; + curScale[kDmgExplode] -= 32; curScale[kDmgFall] = 65 + Random(15); break; case kMissileTeslaAlt: diff --git a/source/games/blood/src/nnexts.cpp b/source/games/blood/src/nnexts.cpp index ac25c5e04..3956c3485 100644 --- a/source/games/blood/src/nnexts.cpp +++ b/source/games/blood/src/nnexts.cpp @@ -3947,7 +3947,7 @@ bool condCheckSprite(XSPRITE* pXCond, int cmpOp, bool PUSH) { var = HitScan(pSpr, pPlayer->zWeapon, pPlayer->aim.dx, pPlayer->aim.dy, pPlayer->aim.dz, arg1, arg3 << 1); else if (IsDudeSprite(pSpr)) var = HitScan(pSpr, pSpr->z, CosScale16(pSpr->ang), SinScale16(pSpr->ang), (!xspriRangeIsFine(pSpr->extra)) ? 0 : spractor->dudeSlope, arg1, arg3 << 1); - else if (var2 & CSTAT_SPRITE_ALIGNMENT_FLOOR) { + else if ((var2 & CSTAT_SPRITE_ALIGNMENT_MASK) == CSTAT_SPRITE_ALIGNMENT_FLOOR) { var3 = (var2 & 0x0008) ? 0x10000 << 1 : -(0x10000 << 1); var = HitScan(pSpr, pSpr->z, Cos(pSpr->ang) >> 16, Sin(pSpr->ang) >> 16, var3, arg1, arg3 << 1);