Toggleable player following. (#1583)

* Added MF8_DONTFOLLOWPLAYERS.

Added the MF8_DONTFOLLOWPLAYERS flag, which allows friendly monsters to not follow their FriendPlayer when they have no target or goal left to head to.

* Changed the order that the DONTFOLLOWPLAYERS check runs in.

This is done to not produce unnecessary overhead on hostile monsters.
This commit is contained in:
inkoalawetrust 2022-04-08 06:32:16 +03:00 committed by GitHub
parent e0289eb0ac
commit 3d1ddbc80e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 1 deletions

View file

@ -423,6 +423,7 @@ enum ActorFlag8
MF8_MAP07BOSS2 = 0x00800000, // MBF21 boss death. MF8_MAP07BOSS2 = 0x00800000, // MBF21 boss death.
MF8_AVOIDHAZARDS = 0x01000000, // MBF AI enhancement. MF8_AVOIDHAZARDS = 0x01000000, // MBF AI enhancement.
MF8_STAYONLIFT = 0x02000000, // MBF AI enhancement. MF8_STAYONLIFT = 0x02000000, // MBF AI enhancement.
MF8_DONTFOLLOWPLAYERS = 0x04000000, // [inkoalwetrust] Friendly monster will not follow players.
}; };
// --- mobj.renderflags --- // --- mobj.renderflags ---

View file

@ -1092,7 +1092,7 @@ void P_RandomChaseDir (AActor *actor)
int turndir; int turndir;
// Friendly monsters like to head toward a player // Friendly monsters like to head toward a player
if (actor->flags & MF_FRIENDLY) if (actor->flags & MF_FRIENDLY && !(actor->flags8 & MF8_DONTFOLLOWPLAYERS))
{ {
AActor *player; AActor *player;
DVector2 delta; DVector2 delta;

View file

@ -338,6 +338,7 @@ static FFlagDef ActorFlagDefs[]=
DEFINE_FLAG(MF8, MAP07BOSS2, AActor, flags8), DEFINE_FLAG(MF8, MAP07BOSS2, AActor, flags8),
DEFINE_FLAG(MF8, AVOIDHAZARDS, AActor, flags8), DEFINE_FLAG(MF8, AVOIDHAZARDS, AActor, flags8),
DEFINE_FLAG(MF8, STAYONLIFT, AActor, flags8), DEFINE_FLAG(MF8, STAYONLIFT, AActor, flags8),
DEFINE_FLAG(MF8, DONTFOLLOWPLAYERS, AActor, flags8),
// Effect flags // Effect flags
DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects), DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects),