From ea4ffa10e5fd1dea9cf8a7035a63e7b2376c17c9 Mon Sep 17 00:00:00 2001 From: RaveYard <29225776+MrRaveYard@users.noreply.github.com> Date: Mon, 7 Aug 2023 14:41:52 +0200 Subject: [PATCH] A_Chase CHF_DONTLOOKALLAROUND --- src/playsim/p_enemy.cpp | 5 +++-- wadsrc/static/zscript/constants.zs | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/playsim/p_enemy.cpp b/src/playsim/p_enemy.cpp index 456076d25cf..b93f528a4f7 100644 --- a/src/playsim/p_enemy.cpp +++ b/src/playsim/p_enemy.cpp @@ -2207,6 +2207,7 @@ enum ChaseFlags CHF_NOPOSTATTACKTURN = 128, CHF_STOPIFBLOCKED = 256, CHF_DONTIDLE = 512, + CHF_DONTLOOKALLAROUND = 1024, }; void A_Wander(AActor *self, int flags) @@ -2441,7 +2442,7 @@ void A_DoChase (AActor *actor, bool fastchase, FState *meleestate, FState *missi // hurt our old one temporarily. actor->threshold = 0; } - if (P_LookForPlayers (actor, true, NULL) && actor->target != actor->goal) + if (P_LookForPlayers (actor, !(flags & CHF_DONTLOOKALLAROUND), NULL) && actor->target != actor->goal) { // got a new target actor->flags7 &= ~MF7_INCHASE; return; @@ -2616,7 +2617,7 @@ void A_DoChase (AActor *actor, bool fastchase, FState *meleestate, FState *missi lookForBetter = true; } AActor * oldtarget = actor->target; - gotNew = P_LookForPlayers (actor, true, NULL); + gotNew = P_LookForPlayers (actor, !(flags & CHF_DONTLOOKALLAROUND), NULL); if (lookForBetter) { actor->flags3 |= MF3_NOSIGHTCHECK; diff --git a/wadsrc/static/zscript/constants.zs b/wadsrc/static/zscript/constants.zs index 14450eef622..23252932c3f 100644 --- a/wadsrc/static/zscript/constants.zs +++ b/wadsrc/static/zscript/constants.zs @@ -141,6 +141,7 @@ enum EChaseFlags CHF_NOPOSTATTACKTURN = 128, CHF_STOPIFBLOCKED = 256, CHF_DONTIDLE = 512, + CHF_DONTLOOKALLAROUND = 1024, CHF_DONTTURN = CHF_NORANDOMTURN | CHF_NOPOSTATTACKTURN | CHF_STOPIFBLOCKED };