mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-12-16 15:41:39 +00:00
dc00d61f4d
- Overrides the NOTELEPORT flag so actors with velocity don't need to disable it in order to perform A_Teleport, which could be screwed up by a teleporting line or sudden ACS interference. - Ensure that the result is set to false if it fails prematurely. Wasn't sure if this was needed, but with the upcoming if/else statements, better safe than sorry.
475 lines
12 KiB
Text
475 lines
12 KiB
Text
|
|
// Flags for A_PainAttack
|
|
const int PAF_NOSKULLATTACK = 1;
|
|
const int PAF_AIMFACING = 2;
|
|
const int PAF_NOTARGET = 4;
|
|
|
|
// Flags for A_VileAttack
|
|
const int VAF_DMGTYPEAPPLYTODIRECT = 1;
|
|
|
|
// Flags for A_Saw
|
|
const int SF_NORANDOM = 1;
|
|
const int SF_RANDOMLIGHTMISS = 2;
|
|
const int SF_RANDOMLIGHTHIT = 4;
|
|
const int SF_RANDOMLIGHTBOTH = 6;
|
|
const int SF_NOUSEAMMOMISS = 8;
|
|
const int SF_NOUSEAMMO = 16;
|
|
const int SF_NOPULLIN = 32;
|
|
const int SF_NOTURN = 64;
|
|
const int SF_STEALARMOR = 128;
|
|
|
|
// Flags for A_CustomMissile
|
|
const int CMF_AIMOFFSET = 1;
|
|
const int CMF_AIMDIRECTION = 2;
|
|
const int CMF_TRACKOWNER = 4;
|
|
const int CMF_CHECKTARGETDEAD = 8;
|
|
const int CMF_ABSOLUTEPITCH = 16;
|
|
const int CMF_OFFSETPITCH = 32;
|
|
const int CMF_SAVEPITCH = 64;
|
|
const int CMF_ABSOLUTEANGLE = 128;
|
|
|
|
// Flags for A_CustomBulletAttack
|
|
const int CBAF_AIMFACING = 1;
|
|
const int CBAF_NORANDOM = 2;
|
|
const int CBAF_EXPLICITANGLE = 4;
|
|
const int CBAF_NOPITCH = 8;
|
|
const int CBAF_NORANDOMPUFFZ = 16;
|
|
|
|
// Flags for A_GunFlash
|
|
const int GFF_NOEXTCHANGE = 1;
|
|
|
|
// Flags for A_FireBullets
|
|
const int FBF_USEAMMO = 1;
|
|
const int FBF_NORANDOM = 2;
|
|
const int FBF_EXPLICITANGLE = 4;
|
|
const int FBF_NOPITCH = 8;
|
|
const int FBF_NOFLASH = 16;
|
|
const int FBF_NORANDOMPUFFZ = 32;
|
|
|
|
// Flags for A_SpawnItemEx
|
|
const int SXF_TRANSFERTRANSLATION = 1 << 0;
|
|
const int SXF_ABSOLUTEPOSITION = 1 << 1;
|
|
const int SXF_ABSOLUTEANGLE = 1 << 2;
|
|
const int SXF_ABSOLUTEMOMENTUM = 1 << 3; //Since "momentum" is declared to be deprecated in the expressions, for compatibility
|
|
const int SXF_ABSOLUTEVELOCITY = 1 << 3; //purposes, this was made. It does the same thing though. Do not change the value.
|
|
const int SXF_SETMASTER = 1 << 4;
|
|
const int SXF_NOCHECKPOSITION = 1 << 5;
|
|
const int SXF_TELEFRAG = 1 << 6;
|
|
const int SXF_CLIENTSIDE = 1 << 7; // only used by Skulltag
|
|
const int SXF_TRANSFERAMBUSHFLAG = 1 << 8;
|
|
const int SXF_TRANSFERPITCH = 1 << 9;
|
|
const int SXF_TRANSFERPOINTERS = 1 << 10;
|
|
const int SXF_USEBLOODCOLOR = 1 << 11;
|
|
const int SXF_CLEARCALLERTID = 1 << 12;
|
|
const int SXF_MULTIPLYSPEED = 1 << 13;
|
|
const int SXF_TRANSFERSCALE = 1 << 14;
|
|
const int SXF_TRANSFERSPECIAL = 1 << 15;
|
|
const int SXF_CLEARCALLERSPECIAL = 1 << 16;
|
|
const int SXF_TRANSFERSTENCILCOL = 1 << 17;
|
|
const int SXF_TRANSFERALPHA = 1 << 18;
|
|
const int SXF_TRANSFERRENDERSTYLE = 1 << 19;
|
|
const int SXF_SETTARGET = 1 << 20;
|
|
const int SXF_SETTRACER = 1 << 21;
|
|
const int SXF_NOPOINTERS = 1 << 22;
|
|
const int SXF_ORIGINATOR = 1 << 23;
|
|
const int SXF_TRANSFERSPRITEFRAME = 1 << 24;
|
|
const int SXF_TRANSFERROLL = 1 << 25;
|
|
|
|
// Flags for A_Chase
|
|
const int CHF_FASTCHASE = 1;
|
|
const int CHF_NOPLAYACTIVE = 2;
|
|
const int CHF_NIGHTMAREFAST = 4;
|
|
const int CHF_RESURRECT = 8;
|
|
const int CHF_DONTMOVE = 16;
|
|
|
|
// Flags for A_LookEx
|
|
const int LOF_NOSIGHTCHECK = 1;
|
|
const int LOF_NOSOUNDCHECK = 2;
|
|
const int LOF_DONTCHASEGOAL = 4;
|
|
const int LOF_NOSEESOUND = 8;
|
|
const int LOF_FULLVOLSEESOUND = 16;
|
|
const int LOF_NOJUMP = 32;
|
|
|
|
// Flags for A_Respawn
|
|
const int RSF_FOG = 1;
|
|
const int RSF_KEEPTARGET = 2;
|
|
const int RSF_TELEFRAG = 4;
|
|
|
|
// Flags for A_JumpIfTargetInLOS and A_JumpIfInTargetLOS
|
|
enum
|
|
{
|
|
JLOSF_PROJECTILE = 1,
|
|
JLOSF_NOSIGHT = 1 << 1,
|
|
JLOSF_CLOSENOFOV = 1 << 2,
|
|
JLOSF_CLOSENOSIGHT = 1 << 3,
|
|
JLOSF_CLOSENOJUMP = 1 << 4,
|
|
JLOSF_DEADNOJUMP = 1 << 5,
|
|
JLOSF_CHECKMASTER = 1 << 6,
|
|
JLOSF_TARGETLOS = 1 << 7,
|
|
JLOSF_FLIPFOV = 1 << 8,
|
|
JLOSF_ALLYNOJUMP = 1 << 9,
|
|
JLOSF_COMBATANTONLY = 1 << 10,
|
|
JLOSF_NOAUTOAIM = 1 << 11,
|
|
JLOSF_CHECKTRACER = 1 << 12,
|
|
};
|
|
|
|
// Flags for A_ChangeVelocity
|
|
const int CVF_RELATIVE = 1;
|
|
const int CVF_REPLACE = 2;
|
|
|
|
// Flags for A_WeaponReady
|
|
const int WRF_NOBOB = 1;
|
|
const int WRF_NOSWITCH = 2;
|
|
const int WRF_NOPRIMARY = 4;
|
|
const int WRF_NOSECONDARY = 8;
|
|
const int WRF_NOFIRE = WRF_NOPRIMARY | WRF_NOSECONDARY;
|
|
const int WRF_ALLOWRELOAD = 16;
|
|
const int WRF_ALLOWZOOM = 32;
|
|
const int WRF_DISABLESWITCH = 64;
|
|
|
|
// Morph constants
|
|
const int MRF_ADDSTAMINA = 1;
|
|
const int MRF_FULLHEALTH = 2;
|
|
const int MRF_UNDOBYTOMEOFPOWER = 4;
|
|
const int MRF_UNDOBYCHAOSDEVICE = 8;
|
|
const int MRF_FAILNOTELEFRAG = 16;
|
|
const int MRF_FAILNOLAUGH = 32;
|
|
const int MRF_WHENINVULNERABLE = 64;
|
|
const int MRF_LOSEACTUALWEAPON = 128;
|
|
const int MRF_NEWTIDBEHAVIOUR = 256;
|
|
const int MRF_UNDOBYDEATH = 512;
|
|
const int MRF_UNDOBYDEATHFORCED = 1024;
|
|
const int MRF_UNDOBYDEATHSAVES = 2048;
|
|
const int MRF_UNDOALWAYS = 4096;
|
|
|
|
// Flags for A_RailAttack and A_CustomRailgun
|
|
const int RGF_SILENT = 1;
|
|
const int RGF_NOPIERCING = 2;
|
|
const int RGF_EXPLICITANGLE = 4;
|
|
const int RGF_FULLBRIGHT = 8;
|
|
const int RGF_CENTERZ = 16;
|
|
|
|
// Flags for A_Mushroom
|
|
const int MSF_Standard = 0;
|
|
const int MSF_Classic = 1;
|
|
const int MSF_DontHurt = 2;
|
|
|
|
// Flags for A_Explode
|
|
const int XF_HURTSOURCE = 1;
|
|
const int XF_NOTMISSILE = 4;
|
|
|
|
// Flags for A_RadiusThrust
|
|
const int RTF_AFFECTSOURCE = 1;
|
|
const int RTF_NOIMPACTDAMAGE = 2;
|
|
const int RTF_NOTMISSILE = 4;
|
|
|
|
// Flags for A_Blast
|
|
const int BF_USEAMMO = 1;
|
|
const int BF_DONTWARN = 2;
|
|
const int BF_AFFECTBOSSES = 4;
|
|
const int BF_NOIMPACTDAMAGE = 8;
|
|
|
|
// Flags for A_SeekerMissile
|
|
const int SMF_LOOK = 1;
|
|
const int SMF_PRECISE = 2;
|
|
const int SMF_CURSPEED = 4;
|
|
|
|
// Flags for A_CustomPunch
|
|
const int CPF_USEAMMO = 1;
|
|
const int CPF_DAGGER = 2;
|
|
const int CPF_PULLIN = 4;
|
|
const int CPF_NORANDOMPUFFZ = 8;
|
|
const int CPF_NOTURN = 16;
|
|
const int CPF_STEALARMOR = 32;
|
|
|
|
// Flags for A_CustomMissile
|
|
const int FPF_AIMATANGLE = 1;
|
|
const int FPF_TRANSFERTRANSLATION = 2;
|
|
|
|
// Flags for A_Teleport
|
|
enum
|
|
{
|
|
TF_TELEFRAG = 0x00000001, // Allow telefrag in order to teleport.
|
|
TF_RANDOMDECIDE = 0x00000002, // Randomly fail based on health. (A_Srcr2Decide)
|
|
TF_FORCED = 0x00000004, // Forget what's in the way. TF_Telefrag takes precedence though.
|
|
TF_KEEPVELOCITY = 0x00000008, // Preserve velocity.
|
|
TF_KEEPANGLE = 0x00000010, // Keep angle.
|
|
TF_USESPOTZ = 0x00000020, // Set the z to the spot's z, instead of the floor.
|
|
TF_NOSRCFOG = 0x00000040, // Don't leave any fog behind when teleporting.
|
|
TF_NODESTFOG = 0x00000080, // Don't spawn any fog at the arrival position.
|
|
TF_USEACTORFOG = 0x00000100, // Use the actor's TeleFogSourceType and TeleFogDestType fogs.
|
|
TF_NOJUMP = 0x00000200, // Don't jump after teleporting.
|
|
TF_OVERRIDE = 0x00000400, // Ignore NOTELEPORT.
|
|
|
|
TF_KEEPORIENTATION = TF_KEEPVELOCITY|TF_KEEPANGLE,
|
|
TF_NOFOG = TF_NOSRCFOG|TF_NODESTFOG,
|
|
};
|
|
|
|
// Flags for A_WolfAttack
|
|
const int WAF_NORANDOM = 1;
|
|
const int WAF_USEPUFF = 2;
|
|
|
|
// Flags for A_RadiusGive
|
|
enum
|
|
{
|
|
RGF_GIVESELF = 1,
|
|
RGF_PLAYERS = 1 << 1,
|
|
RGF_MONSTERS = 1 << 2,
|
|
RGF_OBJECTS = 1 << 3,
|
|
RGF_VOODOO = 1 << 4,
|
|
RGF_CORPSES = 1 << 5,
|
|
RGF_NOTARGET = 1 << 6,
|
|
RGF_NOTRACER = 1 << 7,
|
|
RGF_NOMASTER = 1 << 8,
|
|
RGF_CUBE = 1 << 9,
|
|
RGF_NOSIGHT = 1 << 10,
|
|
RGF_MISSILES = 1 << 11,
|
|
};
|
|
|
|
// Activation flags
|
|
enum
|
|
{
|
|
THINGSPEC_Default = 0,
|
|
THINGSPEC_ThingActs = 1,
|
|
THINGSPEC_ThingTargets = 2,
|
|
THINGSPEC_TriggerTargets = 4,
|
|
THINGSPEC_MonsterTrigger = 8,
|
|
THINGSPEC_MissileTrigger = 16,
|
|
THINGSPEC_ClearSpecial = 32,
|
|
THINGSPEC_NoDeathSpecial = 64,
|
|
THINGSPEC_TriggerActs = 128,
|
|
};
|
|
// Shorter aliases for same
|
|
const int AF_Default = 0;
|
|
const int AF_ThingActs = 1;
|
|
const int AF_ThingTargets = 2;
|
|
const int AF_TriggerTargets = 4;
|
|
const int AF_MonsterTrigger = 8;
|
|
const int AF_MissileTrigger = 16;
|
|
const int AF_ClearSpecial = 32;
|
|
const int AF_NoDeathSpecial = 64;
|
|
const int AF_TriggerActs = 128;
|
|
|
|
// Flags for A_TakeInventory and A_TakeFromTarget
|
|
const int TIF_NOTAKEINFINITE = 1;
|
|
|
|
// constants for A_PlaySound
|
|
enum
|
|
{
|
|
CHAN_AUTO = 0,
|
|
CHAN_WEAPON = 1,
|
|
CHAN_VOICE = 2,
|
|
CHAN_ITEM = 3,
|
|
CHAN_BODY = 4,
|
|
CHAN_5 = 5,
|
|
CHAN_6 = 6,
|
|
CHAN_7 = 7,
|
|
|
|
// modifier flags
|
|
CHAN_LISTENERZ = 8,
|
|
CHAN_MAYBE_LOCAL = 16,
|
|
CHAN_UI = 32,
|
|
CHAN_NOPAUSE = 64
|
|
};
|
|
|
|
// sound attenuation values
|
|
const float ATTN_NONE = 0;
|
|
const float ATTN_NORM = 1;
|
|
const float ATTN_IDLE = 1.001;
|
|
const float ATTN_STATIC = 3;
|
|
|
|
// For SetPlayerProprty action special
|
|
Const Int PROP_FROZEN = 0;
|
|
Const Int PROP_NOTARGET = 1;
|
|
Const Int PROP_INSTANTWEAPONSWITCH = 2;
|
|
Const Int PROP_FLY = 3;
|
|
Const Int PROP_TOTALLYFROZEN = 4;
|
|
Const Int PROP_INVULNERABILITY = 5; // (Deprecated)
|
|
Const Int PROP_STRENGTH = 6; // (Deprecated)
|
|
Const Int PROP_INVISIBILITY = 7; // (Deprecated)
|
|
Const Int PROP_RADIATIONSUIT = 8; // (Deprecated)
|
|
Const Int PROP_ALLMAP = 9; // (Deprecated)
|
|
Const Int PROP_INFRARED = 10; // (Deprecated)
|
|
Const Int PROP_WEAPONLEVEL2 = 11; // (Deprecated)
|
|
Const Int PROP_FLIGHT = 12; // (Deprecated)
|
|
Const Int PROP_SPEED = 15; // (Deprecated)
|
|
Const Int PROP_BUDDHA = 16;
|
|
|
|
// Line_SetBlocking
|
|
Const Int BLOCKF_CREATURES = 1;
|
|
Const Int BLOCKF_MONSTERS = 2;
|
|
Const Int BLOCKF_PLAYERS = 4;
|
|
Const Int BLOCKF_FLOATERS = 8;
|
|
Const Int BLOCKF_PROJECTILES = 16;
|
|
Const Int BLOCKF_EVERYTHING = 32;
|
|
Const Int BLOCKF_RAILING = 64;
|
|
Const Int BLOCKF_USE = 128;
|
|
|
|
// Pointer constants, bitfield-enabled
|
|
|
|
Const Int AAPTR_DEFAULT = 0;
|
|
Const Int AAPTR_NULL = 0x1;
|
|
Const Int AAPTR_TARGET = 0x2;
|
|
Const Int AAPTR_MASTER = 0x4;
|
|
Const Int AAPTR_TRACER = 0x8;
|
|
|
|
Const Int AAPTR_PLAYER_GETTARGET = 0x10;
|
|
Const Int AAPTR_PLAYER_GETCONVERSATION = 0x20;
|
|
|
|
Const Int AAPTR_PLAYER1 = 0x40;
|
|
Const Int AAPTR_PLAYER2 = 0x80;
|
|
Const Int AAPTR_PLAYER3 = 0x100;
|
|
Const Int AAPTR_PLAYER4 = 0x200;
|
|
Const Int AAPTR_PLAYER5 = 0x400;
|
|
Const Int AAPTR_PLAYER6 = 0x800;
|
|
Const Int AAPTR_PLAYER7 = 0x1000;
|
|
Const Int AAPTR_PLAYER8 = 0x2000;
|
|
|
|
Const Int AAPTR_FRIENDPLAYER = 0x4000;
|
|
Const Int AAPTR_LINETARGET = 0x8000;
|
|
|
|
// Pointer operation flags
|
|
|
|
Const Int PTROP_UNSAFETARGET = 1;
|
|
Const Int PTROP_UNSAFEMASTER = 2;
|
|
Const Int PTROP_NOSAFEGUARDS = PTROP_UNSAFETARGET|PTROP_UNSAFEMASTER;
|
|
|
|
|
|
// Flags for A_Warp
|
|
|
|
Const Int WARPF_ABSOLUTEOFFSET = 0x1;
|
|
Const Int WARPF_ABSOLUTEANGLE = 0x2;
|
|
Const Int WARPF_USECALLERANGLE = 0x4;
|
|
Const Int WARPF_NOCHECKPOSITION = 0x8;
|
|
Const Int WARPF_INTERPOLATE = 0x10;
|
|
Const Int WARPF_WARPINTERPOLATION = 0x20;
|
|
Const Int WARPF_COPYINTERPOLATION = 0x40;
|
|
Const Int WARPF_STOP = 0x80;
|
|
Const Int WARPF_TOFLOOR = 0x100;
|
|
Const Int WARPF_TESTONLY = 0x200;
|
|
Const Int WAPRF_ABSOLUTEPOSITION = 0x400;
|
|
Const Int WARPF_ABSOLUTEPOSITION = 0x400;
|
|
Const Int WARPF_BOB = 0x800;
|
|
Const Int WARPF_MOVEPTR = 0x1000;
|
|
|
|
// flags for A_SetPitch/SetAngle/SetRoll
|
|
const int SPF_FORCECLAMP = 1;
|
|
const int SPF_INTERPOLATE = 2;
|
|
|
|
|
|
// flags for A_CheckLOF
|
|
|
|
enum
|
|
{
|
|
CLOFF_NOAIM_VERT = 0x1,
|
|
CLOFF_NOAIM_HORZ = 0x2,
|
|
|
|
CLOFF_JUMPENEMY = 0x4,
|
|
CLOFF_JUMPFRIEND = 0x8,
|
|
CLOFF_JUMPOBJECT = 0x10,
|
|
CLOFF_JUMPNONHOSTILE = 0x20,
|
|
|
|
CLOFF_SKIPENEMY = 0x40,
|
|
CLOFF_SKIPFRIEND = 0x80,
|
|
CLOFF_SKIPOBJECT = 0x100,
|
|
CLOFF_SKIPNONHOSTILE = 0x200,
|
|
|
|
CLOFF_MUSTBESHOOTABLE = 0x400,
|
|
|
|
CLOFF_SKIPTARGET = 0x800,
|
|
CLOFF_ALLOWNULL = 0x1000,
|
|
CLOFF_CHECKPARTIAL = 0x2000,
|
|
|
|
CLOFF_MUSTBEGHOST = 0x4000,
|
|
CLOFF_IGNOREGHOST = 0x8000,
|
|
|
|
CLOFF_MUSTBESOLID = 0x10000,
|
|
CLOFF_BEYONDTARGET = 0x20000,
|
|
|
|
CLOFF_FROMBASE = 0x40000,
|
|
CLOFF_MUL_HEIGHT = 0x80000,
|
|
CLOFF_MUL_WIDTH = 0x100000,
|
|
|
|
CLOFF_JUMP_ON_MISS = 0x200000,
|
|
CLOFF_AIM_VERT_NOOFFSET = 0x400000,
|
|
|
|
CLOFF_SETTARGET = 0x800000,
|
|
CLOFF_SETMASTER = 0x1000000,
|
|
CLOFF_SETTRACER = 0x2000000,
|
|
|
|
CLOFF_SKIPOBSTACLES = CLOFF_SKIPENEMY|CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_SKIPNONHOSTILE,
|
|
CLOFF_NOAIM = CLOFF_NOAIM_VERT|CLOFF_NOAIM_HORZ
|
|
};
|
|
|
|
// Flags for A_Kill (Master/Target/Tracer/Children/Siblings) series
|
|
enum
|
|
{
|
|
KILS_FOILINVUL = 0x00000001,
|
|
KILS_KILLMISSILES = 0x00000002,
|
|
KILS_NOMONSTERS = 0x00000004,
|
|
KILS_FOILBUDDHA = 0x00000008,
|
|
KILS_EXFILTER = 0x00000010,
|
|
KILS_EXSPECIES = 0x00000020,
|
|
KILS_EITHER = 0x00000040,
|
|
};
|
|
|
|
// Flags for A_Damage (Master/Target/Tracer/Children/Siblings/Self) series
|
|
enum
|
|
{
|
|
DMSS_FOILINVUL = 0x00000001,
|
|
DMSS_AFFECTARMOR = 0x00000002,
|
|
DMSS_KILL = 0x00000004,
|
|
DMSS_NOFACTOR = 0x00000008,
|
|
DMSS_FOILBUDDHA = 0x00000010,
|
|
DMSS_NOPROTECT = 0x00000020,
|
|
DMSS_EXFILTER = 0x00000040,
|
|
DMSS_EXSPECIES = 0x00000080,
|
|
DMSS_EITHER = 0x00000100,
|
|
};
|
|
|
|
// Flags for A_AlertMonsters
|
|
const int AMF_TARGETEMITTER = 1;
|
|
const int AMF_TARGETNONPLAYER = 2;
|
|
const int AMF_EMITFROMTARGET = 4;
|
|
|
|
// Flags for A_Remove*
|
|
enum
|
|
{
|
|
RMVF_MISSILES = 0x00000001,
|
|
RMVF_NOMONSTERS = 0x00000002,
|
|
RMVF_MISC = 0x00000004,
|
|
RMVF_EVERYTHING = 0x00000008,
|
|
RMVF_EXFILTER = 0x00000010,
|
|
RMVF_EXSPECIES = 0x00000020,
|
|
RMVF_EITHER = 0x00000040,
|
|
};
|
|
|
|
// Flags for A_Fade*
|
|
enum
|
|
{
|
|
FTF_REMOVE = 1 << 0,
|
|
FTF_CLAMP = 1 << 1,
|
|
};
|
|
|
|
// Flags for A_Face*
|
|
enum
|
|
{
|
|
FAF_BOTTOM = 1,
|
|
FAF_MIDDLE = 2,
|
|
FAF_TOP = 4,
|
|
FAF_NODISTFACTOR = 8,
|
|
};
|
|
|
|
// Flags for A_QuakeEx
|
|
enum
|
|
{
|
|
QF_RELATIVE = 1,
|
|
QF_SCALEDOWN = 1 << 1,
|
|
QF_SCALEUP = 1 << 2,
|
|
QF_MAX = 1 << 3,
|
|
QF_FULLINTENSITY = 1 << 4,
|
|
QF_WAVE = 1 << 5,
|
|
};
|
|
|
|
// This is only here to provide one global variable for testing.
|
|
native int testglobalvar;
|