From 7f8d64cb057b2ac7207bbfd7d81a301e5e35962b Mon Sep 17 00:00:00 2001 From: NepDisk Date: Sun, 14 Dec 2025 20:23:00 -0500 Subject: [PATCH] Actually fix dedi crash for P_LookForPlayers --- src/p_enemy.c | 13 +++++++++++++ src/p_mobj.c | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/p_enemy.c b/src/p_enemy.c index d371199f6..e2869680a 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -442,6 +442,7 @@ void P_NewChaseDir(mobj_t *actor) boolean P_LookForPlayers(mobj_t *actor, boolean allaround, boolean tracer, fixed_t dist) { INT32 c = 0, stop; + INT32 i, pcount = 0; player_t *player; angle_t an; @@ -453,6 +454,18 @@ boolean P_LookForPlayers(mobj_t *actor, boolean allaround, boolean tracer, fixed stop = (actor->lastlook - 1) % PLAYERSMASK; + // No players? Don't bother. + for (i = 0; i < MAXPLAYERS; i++) + { + if (!playeringame[i] || players[i].spectator) + continue; + + pcount++; + } + + if (!pcount) + return false; + for (; ; actor->lastlook = (actor->lastlook + 1) % PLAYERSMASK) { // done looking diff --git a/src/p_mobj.c b/src/p_mobj.c index 6891cba86..4b4561354 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -4270,6 +4270,7 @@ static void P_SpawnItemCapsuleParts(mobj_t *mobj) boolean P_BossTargetPlayer(mobj_t *actor, boolean closest) { INT32 stop = -1, c = 0; + INT32 i, pcount = 0; player_t *player; fixed_t dist, lastdist = 0; @@ -4278,6 +4279,18 @@ boolean P_BossTargetPlayer(mobj_t *actor, boolean closest) actor->lastlook = P_RandomByte(); actor->lastlook %= PLAYERSMASK; + // No players? Don't bother. + for (i = 0; i < MAXPLAYERS; i++) + { + if (!playeringame[i] || players[i].spectator) + continue; + + pcount++; + } + + if (!pcount) + return false; + for( ; ; actor->lastlook = (actor->lastlook+1) % PLAYERSMASK) { // save the first look so we stop next time.