From 40ca77c6b51b53ac61af5f4bfa0fb859a75846f8 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 4 Oct 2023 22:05:26 +0200 Subject: [PATCH] use a feature flag for the enemy attacks in 3 callback functions. This is simple enough to handle without gModernMap --- source/games/blood/src/aigarg.cpp | 3 ++- source/games/blood/src/aighost.cpp | 3 ++- source/games/blood/src/aihound.cpp | 2 +- source/games/blood/src/blood.h | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/source/games/blood/src/aigarg.cpp b/source/games/blood/src/aigarg.cpp index e085e81a3..4bbf0ab3b 100644 --- a/source/games/blood/src/aigarg.cpp +++ b/source/games/blood/src/aigarg.cpp @@ -160,7 +160,8 @@ void BlastSSeqCallback(int, DBloodActor* actor) } } // allow to fire missile in non-player targets - if (target->IsPlayerActor() || gModernMap) { + if (target->IsPlayerActor() || currentLevel->featureflags & kFeatureEnemyAttacks) + { actFireMissile(actor, -7.5, 0, Aim, kMissileArcGargoyle); actFireMissile(actor, 7.5, 0, Aim, kMissileArcGargoyle); } diff --git a/source/games/blood/src/aighost.cpp b/source/games/blood/src/aighost.cpp index 4dbc0fe27..ea296909b 100644 --- a/source/games/blood/src/aighost.cpp +++ b/source/games/blood/src/aighost.cpp @@ -147,7 +147,8 @@ void ghostBlastSeqCallback(int, DBloodActor* actor) } } // allow fire missile in non-player targets if not a demo - if (target->IsPlayerActor() || gModernMap) { + if (target->IsPlayerActor() || currentLevel->featureflags & kFeatureEnemyAttacks) + { sfxPlay3DSound(actor, 489, 0, 0); actFireMissile(actor, 0, 0, Aim, kMissileEctoSkull); } diff --git a/source/games/blood/src/aihound.cpp b/source/games/blood/src/aihound.cpp index 7f7039580..afed0c116 100644 --- a/source/games/blood/src/aihound.cpp +++ b/source/games/blood/src/aihound.cpp @@ -52,7 +52,7 @@ void houndBiteSeqCallback(int, DBloodActor* actor) if (!actor->ValidateTarget(__FUNCTION__)) return; auto target = actor->GetTarget(); DVector3 vec(actor->spr.Angles.Yaw.ToVector() * 64, target->spr.pos.Z - actor->spr.pos.Z); - if (target->IsPlayerActor() || gModernMap) // allow to hit non-player targets + if (target->IsPlayerActor() || currentLevel->featureflags & kFeatureEnemyAttacks) actFireVector(actor, 0, 0, vec, kVectorHoundBite); } diff --git a/source/games/blood/src/blood.h b/source/games/blood/src/blood.h index de66511cb..e92d31d61 100644 --- a/source/games/blood/src/blood.h +++ b/source/games/blood/src/blood.h @@ -62,6 +62,7 @@ BEGIN_BLD_NS enum EFeatureFlags { kFeatureCustomAmmoCount = 1, + kFeatureEnemyAttacks = 2, }; constexpr int BMAX_PATH = 260;