mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-22 19:51:16 +00:00
- handle xrepeat abuse in Exhumed’s energy blocks
This commit is contained in:
parent
42679d58bb
commit
62427f8260
1 changed files with 8 additions and 8 deletions
|
@ -1461,14 +1461,14 @@ void AISpark::Tick(RunListEvent* ev)
|
||||||
if (!pActor) return;
|
if (!pActor) return;
|
||||||
|
|
||||||
pActor->spr.shade += 3;
|
pActor->spr.shade += 3;
|
||||||
pActor->spr.xrepeat -= 2;
|
pActor->spr.AddScaleX(-0.03125);
|
||||||
|
|
||||||
if (pActor->spr.ScaleX() >= 0.0625 && pActor->spr.shade <= 100)
|
if (pActor->spr.ScaleX() >= 0.0625 && pActor->spr.shade <= 100)
|
||||||
{
|
{
|
||||||
pActor->spr.AddScaleY(-0.03125);
|
pActor->spr.AddScaleY(-0.03125);
|
||||||
|
|
||||||
// calling BuildSpark() with 2nd parameter as '1' will set kTile986
|
// calling BuildSpark() with 2nd parameter as '1' will set kTile986
|
||||||
if (pActor->spr.picnum == kTile986 && (pActor->spr.xrepeat & 2))
|
if (pActor->spr.picnum == kTile986 && int((pActor->spr.ScaleX() * INV_REPEAT_SCALE)) & 2) // hack alert
|
||||||
{
|
{
|
||||||
BuildSpark(pActor, 2);
|
BuildSpark(pActor, 2);
|
||||||
}
|
}
|
||||||
|
@ -1641,7 +1641,7 @@ DExhumedActor* BuildEnergyBlock(sectortype* pSector)
|
||||||
nRepeat = 255;
|
nRepeat = 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
pActor->spr.xrepeat = nRepeat;
|
pActor->spr.intangle = nRepeat;
|
||||||
pActor->spr.cstat = CSTAT_SPRITE_INVISIBLE;
|
pActor->spr.cstat = CSTAT_SPRITE_INVISIBLE;
|
||||||
pActor->vel.X = 0;
|
pActor->vel.X = 0;
|
||||||
pActor->vel.Y = 0;
|
pActor->vel.Y = 0;
|
||||||
|
@ -1729,11 +1729,11 @@ void ExplodeEnergyBlock(DExhumedActor* pActor)
|
||||||
BuildSpark(pActor, 3);
|
BuildSpark(pActor, 3);
|
||||||
|
|
||||||
pActor->spr.cstat = 0;
|
pActor->spr.cstat = 0;
|
||||||
pActor->spr.xrepeat = 100;
|
pActor->spr.intangle = 100;
|
||||||
|
|
||||||
PlayFX2(StaticSound[kSound78], pActor);
|
PlayFX2(StaticSound[kSound78], pActor);
|
||||||
|
|
||||||
pActor->spr.xrepeat = 0;
|
pActor->spr.intangle = 0;
|
||||||
|
|
||||||
nEnergyTowers--;
|
nEnergyTowers--;
|
||||||
|
|
||||||
|
@ -1805,9 +1805,9 @@ void AIEnergyBlock::Damage(RunListEvent* ev)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ev->nDamage < pActor->spr.xrepeat)
|
if (ev->nDamage < pActor->spr.intangle)
|
||||||
{
|
{
|
||||||
pActor->spr.xrepeat -= ev->nDamage;
|
pActor->spr.intangle -= ev->nDamage;
|
||||||
|
|
||||||
auto pActor2 = insertActor(lasthitsect, 0);
|
auto pActor2 = insertActor(lasthitsect, 0);
|
||||||
|
|
||||||
|
@ -1819,7 +1819,7 @@ void AIEnergyBlock::Damage(RunListEvent* ev)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pActor->spr.xrepeat = 0; // using xrepeat to store health
|
pActor->spr.intangle = 0; // using intangle to store health
|
||||||
ExplodeEnergyBlock(pActor);
|
ExplodeEnergyBlock(pActor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue