diff --git a/source/games/exhumed/src/aistuff.h b/source/games/exhumed/src/aistuff.h index 4c4c42afa..301507de0 100644 --- a/source/games/exhumed/src/aistuff.h +++ b/source/games/exhumed/src/aistuff.h @@ -399,6 +399,8 @@ struct RunListEvent int nRadialDamage; // Radial damage needs a bit more info. int nDamageRadius; DExhumedActor* pRadialActor; + + bool isRadialEvent() const { return nMessage == EMessageType::RadialDamage; } }; struct ExhumedAI diff --git a/source/games/exhumed/src/anubis.cpp b/source/games/exhumed/src/anubis.cpp index cf738c89d..ed3aa5ece 100644 --- a/source/games/exhumed/src/anubis.cpp +++ b/source/games/exhumed/src/anubis.cpp @@ -440,7 +440,7 @@ void AIAnubis::Damage(RunListEvent* ev) if (nAction < 11) { DropMagic(ap); - ap->nAction = (ev->nMessage == EMessageType::RadialDamage) + 11; + ap->nAction = int(ev->isRadialEvent()) + 11; ap->nFrame = 0; } } diff --git a/source/games/exhumed/src/fish.cpp b/source/games/exhumed/src/fish.cpp index 5b36c5203..367318f4a 100644 --- a/source/games/exhumed/src/fish.cpp +++ b/source/games/exhumed/src/fish.cpp @@ -287,7 +287,7 @@ void AIFish::Damage(RunListEvent* ev) pSprite->cstat &= 0xFEFE; - if (ev->nMessage == EMessageType::Damage) + if (!ev->isRadialEvent()) { for (int i = 0; i < 3; i++) { diff --git a/source/games/exhumed/src/lion.cpp b/source/games/exhumed/src/lion.cpp index 51dfff9cf..c55928a82 100644 --- a/source/games/exhumed/src/lion.cpp +++ b/source/games/exhumed/src/lion.cpp @@ -140,7 +140,7 @@ void AILion::Damage(RunListEvent* ev) { DropMagic(pActor); - if (ev->nMessage == EMessageType::RadialDamage) + if (ev->isRadialEvent()) { pActor->nAction = 11; } diff --git a/source/games/exhumed/src/player.cpp b/source/games/exhumed/src/player.cpp index ed7d011f0..32ff82d28 100644 --- a/source/games/exhumed/src/player.cpp +++ b/source/games/exhumed/src/player.cpp @@ -650,7 +650,7 @@ void AIPlayer::Damage(RunListEvent* ev) return; } - DExhumedActor* pActor2 = (ev->nMessage != EMessageType::RadialDamage) ? ev->pOtherActor : ev->pRadialActor->pTarget; + DExhumedActor* pActor2 = (!ev->isRadialEvent()) ? ev->pOtherActor : ev->pRadialActor->pTarget; // ok continue case 0x80000 as normal, loc_1C57C if (!PlayerList[nPlayer].nHealth) { @@ -726,7 +726,7 @@ void AIPlayer::Damage(RunListEvent* ev) PlayerList[nPlayer].nPlayerScore--; } - if (ev->nMessage == EMessageType::RadialDamage) + if (ev->isRadialEvent()) { for (int i = 122; i <= 131; i++) {