gzdoom/wadsrc/static/zscript/constants.txt
Christoph Oelckers 8dba322775 - scriptified Heretic's Skull Rod.
- Took the opportunity and fixed the logic for the Skull Rod's rain spawner. The old code which was part of the 3D floor submission was unable to work with portals at all. The new approach no longer tries to hide the dead projectile in the ceiling, it leaves it where it is and changes a few flags, so that its z-position can be used as reference to get the actual ceiling. This works for line portals, but for sector portals still requires some changes to sector_t::NextHighestCeilingAt to work, but at least this can be made to work unlike the old code.
- added names for the player-related translations to A_SetTranslation.
- fixed: Failure to resolve a function argument was checked for, too late.
- made the parameter for A_SetTranslation a name instead of a string, because it is more efficient. We do not need full strings here.
2016-11-25 16:05:03 +01:00

984 lines
21 KiB
Text

// for flag changer functions.
const FLAG_NO_CHANGE = -1;
const MAXPLAYERS = 8;
enum EStateUseFlags
{
SUF_ACTOR = 1,
SUF_OVERLAY = 2,
SUF_WEAPON = 4,
SUF_ITEM = 8,
};
// Flags for A_PainAttack
enum EPainAttackFlags
{
PAF_NOSKULLATTACK = 1,
PAF_AIMFACING = 2,
PAF_NOTARGET = 4,
};
// Flags for A_VileAttack
enum EVileAttackFlags
{
VAF_DMGTYPEAPPLYTODIRECT = 1,
};
// Flags for A_Saw
enum ESawFlags
{
SF_NORANDOM = 1,
SF_RANDOMLIGHTMISS = 2,
SF_RANDOMLIGHTHIT = 4,
SF_RANDOMLIGHTBOTH = 6,
SF_NOUSEAMMOMISS = 8,
SF_NOUSEAMMO = 16,
SF_NOPULLIN = 32,
SF_NOTURN = 64,
SF_STEALARMOR = 128,
};
// Flags for A_BFGSpray
enum EBFGSprayFlags
{
BFGF_HURTSOURCE = 1,
BFGF_MISSILEORIGIN = 2,
};
// Flags for A_CustomMissile
enum ECustomMissileFlags
{
CMF_AIMOFFSET = 1,
CMF_AIMDIRECTION = 2,
CMF_TRACKOWNER = 4,
CMF_CHECKTARGETDEAD = 8,
CMF_ABSOLUTEPITCH = 16,
CMF_OFFSETPITCH = 32,
CMF_SAVEPITCH = 64,
CMF_ABSOLUTEANGLE = 128,
};
// Flags for A_CustomBulletAttack
enum ECustomBulletAttackFlags
{
CBAF_AIMFACING = 1,
CBAF_NORANDOM = 2,
CBAF_EXPLICITANGLE = 4,
CBAF_NOPITCH = 8,
CBAF_NORANDOMPUFFZ = 16,
CBAF_PUFFTARGET = 32,
CBAF_PUFFMASTER = 64,
CBAF_PUFFTRACER = 128,
};
// Flags for A_GunFlash
enum EGunFlashFlags
{
GFF_NOEXTCHANGE = 1,
};
// Flags for A_FireBullets
enum EFireBulletsFlags
{
FBF_USEAMMO = 1,
FBF_NORANDOM = 2,
FBF_EXPLICITANGLE = 4,
FBF_NOPITCH = 8,
FBF_NOFLASH = 16,
FBF_NORANDOMPUFFZ = 32,
FBF_PUFFTARGET = 64,
FBF_PUFFMASTER = 128,
FBF_PUFFTRACER = 256,
};
// Flags for A_SpawnItemEx
enum ESpawnItemFlags
{
SXF_TRANSFERTRANSLATION = 1 << 0,
SXF_ABSOLUTEPOSITION = 1 << 1,
SXF_ABSOLUTEANGLE = 1 << 2,
SXF_ABSOLUTEMOMENTUM = 1 << 3, //Since "momentum" is declared to be deprecated in the expressions, for compatibility
SXF_ABSOLUTEVELOCITY = 1 << 3, //purposes, this was made. It does the same thing though. Do not change the value.
SXF_SETMASTER = 1 << 4,
SXF_NOCHECKPOSITION = 1 << 5,
SXF_TELEFRAG = 1 << 6,
SXF_CLIENTSIDE = 1 << 7, // only used by Skulltag
SXF_TRANSFERAMBUSHFLAG = 1 << 8,
SXF_TRANSFERPITCH = 1 << 9,
SXF_TRANSFERPOINTERS = 1 << 10,
SXF_USEBLOODCOLOR = 1 << 11,
SXF_CLEARCALLERTID = 1 << 12,
SXF_MULTIPLYSPEED = 1 << 13,
SXF_TRANSFERSCALE = 1 << 14,
SXF_TRANSFERSPECIAL = 1 << 15,
SXF_CLEARCALLERSPECIAL = 1 << 16,
SXF_TRANSFERSTENCILCOL = 1 << 17,
SXF_TRANSFERALPHA = 1 << 18,
SXF_TRANSFERRENDERSTYLE = 1 << 19,
SXF_SETTARGET = 1 << 20,
SXF_SETTRACER = 1 << 21,
SXF_NOPOINTERS = 1 << 22,
SXF_ORIGINATOR = 1 << 23,
SXF_TRANSFERSPRITEFRAME = 1 << 24,
SXF_TRANSFERROLL = 1 << 25,
SXF_ISTARGET = 1 << 26,
SXF_ISMASTER = 1 << 27,
SXF_ISTRACER = 1 << 28,
};
// Flags for A_Chase
enum EChaseFlags
{
CHF_FASTCHASE = 1,
CHF_NOPLAYACTIVE = 2,
CHF_NIGHTMAREFAST = 4,
CHF_RESURRECT = 8,
CHF_DONTMOVE = 16,
CHF_NORANDOMTURN = 32,
CHF_NODIRECTIONTURN = 64,
CHF_NOPOSTATTACKTURN = 128,
CHF_STOPIFBLOCKED = 256,
CHF_DONTTURN = CHF_NORANDOMTURN | CHF_NOPOSTATTACKTURN | CHF_STOPIFBLOCKED
};
// Flags for A_LookEx
enum ELookFlags
{
LOF_NOSIGHTCHECK = 1,
LOF_NOSOUNDCHECK = 2,
LOF_DONTCHASEGOAL = 4,
LOF_NOSEESOUND = 8,
LOF_FULLVOLSEESOUND = 16,
LOF_NOJUMP = 32,
};
// Flags for A_Respawn
enum ERespawnFlags
{
RSF_FOG = 1,
RSF_KEEPTARGET = 2,
RSF_TELEFRAG = 4,
};
// Flags for A_JumpIfTargetInLOS and A_JumpIfInTargetLOS
enum EJumpFlags
{
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
enum EChangeVelocityFlags
{
CVF_RELATIVE = 1,
CVF_REPLACE = 2,
};
// Flags for A_WeaponReady
enum EWeaponReadyFlags
{
WRF_NOBOB = 1,
WRF_NOSWITCH = 2,
WRF_NOPRIMARY = 4,
WRF_NOSECONDARY = 8,
WRF_NOFIRE = WRF_NOPRIMARY | WRF_NOSECONDARY,
WRF_ALLOWRELOAD = 16,
WRF_ALLOWZOOM = 32,
WRF_DISABLESWITCH = 64,
WRF_ALLOWUSER1 = 128,
WRF_ALLOWUSER2 = 256,
WRF_ALLOWUSER3 = 512,
WRF_ALLOWUSER4 = 1024,
};
// Flags for A_SelectWeapon
enum ESelectWeaponFlags
{
SWF_SELECTPRIORITY = 1,
};
// Morph constants
enum EMorphFlags
{
MRF_ADDSTAMINA = 1,
MRF_FULLHEALTH = 2,
MRF_UNDOBYTOMEOFPOWER = 4,
MRF_UNDOBYCHAOSDEVICE = 8,
MRF_FAILNOTELEFRAG = 16,
MRF_FAILNOLAUGH = 32,
MRF_WHENINVULNERABLE = 64,
MRF_LOSEACTUALWEAPON = 128,
MRF_NEWTIDBEHAVIOUR = 256,
MRF_UNDOBYDEATH = 512,
MRF_UNDOBYDEATHFORCED = 1024,
MRF_UNDOBYDEATHSAVES = 2048,
MRF_UNDOALWAYS = 4096,
MRF_TRANSFERTRANSLATION = 8192,
};
// Flags for A_RailAttack and A_CustomRailgun
enum ERailFlags
{
RGF_SILENT = 1,
RGF_NOPIERCING = 2,
RGF_EXPLICITANGLE = 4,
RGF_FULLBRIGHT = 8,
RGF_CENTERZ = 16,
RGF_NORANDOMPUFFZ = 32,
};
// Flags for A_Mushroom
enum EMushroomFlags
{
MSF_Standard = 0,
MSF_Classic = 1,
MSF_DontHurt = 2,
};
// Flags for A_Explode
enum EExplodeFlags
{
XF_HURTSOURCE = 1,
XF_NOTMISSILE = 4,
XF_EXPLICITDAMAGETYPE = 8,
XF_NOSPLASH = 16,
};
// Flags for A_RadiusThrust
enum ERadiusThrustFlags
{
RTF_AFFECTSOURCE = 1,
RTF_NOIMPACTDAMAGE = 2,
RTF_NOTMISSILE = 4,
RTF_THRUSTZ = 16,
};
// Flags for A_RadiusDamageSelf
enum ERadiusDamageSelfFlags
{
RDSF_BFGDAMAGE = 1,
};
// Flags for A_Blast
enum EBlastFlags
{
BF_USEAMMO = 1,
BF_DONTWARN = 2,
BF_AFFECTBOSSES = 4,
BF_NOIMPACTDAMAGE = 8,
};
// Flags for A_SeekerMissile
enum ESeekerMissileFlags
{
SMF_LOOK = 1,
SMF_PRECISE = 2,
SMF_CURSPEED = 4,
};
// Flags for A_CustomPunch
enum ECustomPunchFlags
{
CPF_USEAMMO = 1,
CPF_DAGGER = 2,
CPF_PULLIN = 4,
CPF_NORANDOMPUFFZ = 8,
CPF_NOTURN = 16,
CPF_STEALARMOR = 32,
};
enum EFireCustomMissileFlags
{
FPF_AIMATANGLE = 1,
FPF_TRANSFERTRANSLATION = 2,
FPF_NOAUTOAIM = 4,
};
// Flags for A_Teleport
enum ETeleportFlags
{
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_SENSITIVEZ = 0x00000800, // Fail if the actor wouldn't fit in the position (for Z).
TF_KEEPORIENTATION = TF_KEEPVELOCITY|TF_KEEPANGLE,
TF_NOFOG = TF_NOSRCFOG|TF_NODESTFOG,
};
// Flags for A_WolfAttack
enum EWolfAttackFlags
{
WAF_NORANDOM = 1,
WAF_USEPUFF = 2
};
// Flags for A_RadiusGive
enum ERadiusGiveFlags
{
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,
RGF_INCLUSIVE = 1 << 12,
RGF_ITEMS = 1 << 13,
RGF_KILLED = 1 << 14,
RGF_EXFILTER = 1 << 15,
RGF_EXSPECIES = 1 << 16,
RGF_EITHER = 1 << 17,
};
// Activation flags
enum EActivationFlags
{
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
AF_Default = 0,
AF_ThingActs = 1,
AF_ThingTargets = 2,
AF_TriggerTargets = 4,
AF_MonsterTrigger = 8,
AF_MissileTrigger = 16,
AF_ClearSpecial = 32,
AF_NoDeathSpecial = 64,
AF_TriggerActs = 128,
};
// Flags for A_TakeInventory and A_TakeFromTarget
enum ETakeFlags
{
TIF_NOTAKEINFINITE = 1
};
// constants for A_PlaySound
enum ESoundFlags
{
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 ATTN_NONE = 0;
const ATTN_NORM = 1;
const ATTN_IDLE = 1.001;
const ATTN_STATIC = 3;
// For SetPlayerProprty action special
enum EPlayerProperties
{
PROP_FROZEN = 0,
PROP_NOTARGET = 1,
PROP_INSTANTWEAPONSWITCH = 2,
PROP_FLY = 3,
PROP_TOTALLYFROZEN = 4,
PROP_INVULNERABILITY = 5, // (Deprecated)
PROP_STRENGTH = 6, // (Deprecated)
PROP_INVISIBILITY = 7, // (Deprecated)
PROP_RADIATIONSUIT = 8, // (Deprecated)
PROP_ALLMAP = 9, // (Deprecated)
PROP_INFRARED = 10, // (Deprecated)
PROP_WEAPONLEVEL2 = 11, // (Deprecated)
PROP_FLIGHT = 12, // (Deprecated)
PROP_SPEED = 15, // (Deprecated)
PROP_BUDDHA = 16,
}
// Line_SetBlocking
enum EBlockFlags
{
BLOCKF_CREATURES = 1,
BLOCKF_MONSTERS = 2,
BLOCKF_PLAYERS = 4,
BLOCKF_FLOATERS = 8,
BLOCKF_PROJECTILES = 16,
BLOCKF_EVERYTHING = 32,
BLOCKF_RAILING = 64,
BLOCKF_USE = 128,
};
// Pointer constants, bitfield-enabled
enum EPointerFlags
{
AAPTR_DEFAULT = 0,
AAPTR_NULL = 0x1,
AAPTR_TARGET = 0x2,
AAPTR_MASTER = 0x4,
AAPTR_TRACER = 0x8,
AAPTR_PLAYER_GETTARGET = 0x10,
AAPTR_PLAYER_GETCONVERSATION = 0x20,
AAPTR_PLAYER1 = 0x40,
AAPTR_PLAYER2 = 0x80,
AAPTR_PLAYER3 = 0x100,
AAPTR_PLAYER4 = 0x200,
AAPTR_PLAYER5 = 0x400,
AAPTR_PLAYER6 = 0x800,
AAPTR_PLAYER7 = 0x1000,
AAPTR_PLAYER8 = 0x2000,
AAPTR_FRIENDPLAYER = 0x4000,
AAPTR_LINETARGET = 0x8000,
};
// Pointer operation flags
enum EPointerOperations
{
PTROP_UNSAFETARGET = 1,
PTROP_UNSAFEMASTER = 2,
PTROP_NOSAFEGUARDS = PTROP_UNSAFETARGET|PTROP_UNSAFEMASTER,
};
// Flags for A_Warp
enum EWarpFlags
{
WARPF_ABSOLUTEOFFSET = 0x1,
WARPF_ABSOLUTEANGLE = 0x2,
WARPF_USECALLERANGLE = 0x4,
WARPF_NOCHECKPOSITION = 0x8,
WARPF_INTERPOLATE = 0x10,
WARPF_WARPINTERPOLATION = 0x20,
WARPF_COPYINTERPOLATION = 0x40,
WARPF_STOP = 0x80,
WARPF_TOFLOOR = 0x100,
WARPF_TESTONLY = 0x200,
WAPRF_ABSOLUTEPOSITION = 0x400,
WARPF_ABSOLUTEPOSITION = 0x400,
WARPF_BOB = 0x800,
WARPF_MOVEPTR = 0x1000,
WARPF_USETID = 0x2000,
WARPF_COPYVELOCITY = 0x4000,
WARPF_COPYPITCH = 0x8000,
};
// flags for A_SetPitch/SetAngle/SetRoll
enum EAngleFlags
{
SPF_FORCECLAMP = 1,
SPF_INTERPOLATE = 2,
};
// flags for A_CheckLOF
enum ELOFFlags
{
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 EKillFlags
{
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 EDamageFlags
{
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,
DMSS_INFLICTORDMGTYPE = 0x00000200,
};
// Flags for A_AlertMonsters
enum EAlertFlags
{
AMF_TARGETEMITTER = 1,
AMF_TARGETNONPLAYER = 2,
AMF_EMITFROMTARGET = 4,
}
// Flags for A_Remove*
enum ERemoveFlags
{
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 EFadeFlags
{
FTF_REMOVE = 1 << 0,
FTF_CLAMP = 1 << 1,
};
// Flags for A_Face*
enum EFaceFlags
{
FAF_BOTTOM = 1,
FAF_MIDDLE = 2,
FAF_TOP = 4,
FAF_NODISTFACTOR = 8,
};
// Flags for A_QuakeEx
enum EQuakeFlags
{
QF_RELATIVE = 1,
QF_SCALEDOWN = 1 << 1,
QF_SCALEUP = 1 << 2,
QF_MAX = 1 << 3,
QF_FULLINTENSITY = 1 << 4,
QF_WAVE = 1 << 5,
};
// A_CheckProximity flags
enum EProximityFlags
{
CPXF_ANCESTOR = 1,
CPXF_LESSOREQUAL = 1 << 1,
CPXF_NOZ = 1 << 2,
CPXF_COUNTDEAD = 1 << 3,
CPXF_DEADONLY = 1 << 4,
CPXF_EXACT = 1 << 5,
CPXF_SETTARGET = 1 << 6,
CPXF_SETMASTER = 1 << 7,
CPXF_SETTRACER = 1 << 8,
CPXF_FARTHEST = 1 << 9,
CPXF_CLOSEST = 1 << 10,
CPXF_SETONPTR = 1 << 11,
CPXF_CHECKSIGHT = 1 << 12,
};
// Flags for A_CheckBlock
// These flags only affect the calling actor('s pointer), not the ones being searched.
enum ECheckBlockFlags
{
CBF_NOLINES = 1 << 0, //Don't check actors.
CBF_SETTARGET = 1 << 1, //Sets the caller/pointer's target to the actor blocking it. Actors only.
CBF_SETMASTER = 1 << 2, //^ but with master.
CBF_SETTRACER = 1 << 3, //^ but with tracer.
CBF_SETONPTR = 1 << 4, //Sets the pointer change on the actor doing the checking instead of self.
CBF_DROPOFF = 1 << 5, //Check for dropoffs.
CBF_NOACTORS = 1 << 6, //Don't check actors.
CBF_ABSOLUTEPOS = 1 << 7, //Absolute position for offsets.
CBF_ABSOLUTEANGLE = 1 << 8, //Absolute angle for offsets.
};
enum EParticleFlags
{
SPF_FULLBRIGHT = 1,
SPF_RELPOS = 1 << 1,
SPF_RELVEL = 1 << 2,
SPF_RELACCEL = 1 << 3,
SPF_RELANG = 1 << 4,
SPF_NOTIMEFREEZE = 1 << 5,
SPF_RELATIVE = SPF_RELPOS|SPF_RELVEL|SPF_RELACCEL|SPF_RELANG
};
//Flags for A_FaceMovementDirection
enum EMovementFlags
{
FMDF_NOPITCH = 1 << 0,
FMDF_INTERPOLATE = 1 << 1,
FMDF_NOANGLE = 1 << 2,
};
// Flags for GetZAt
enum EZFlags
{
GZF_ABSOLUTEPOS = 1, // Use the absolute position instead of an offsetted one.
GZF_ABSOLUTEANG = 1 << 1, // Don't add the actor's angle to the parameter.
GZF_CEILING = 1 << 2, // Check the ceiling instead of the floor.
GZF_3DRESTRICT = 1 << 3, // Ignore midtextures and 3D floors above the pointer's z.
GZF_NOPORTALS = 1 << 4, // Don't pass through any portals.
GZF_NO3DFLOOR = 1 << 5, // Pass all 3D floors.
};
// Flags for A_WeaponOffset
enum EWeaponOffsetFlags
{
WOF_KEEPX = 1,
WOF_KEEPY = 1 << 1,
WOF_ADD = 1 << 2,
};
// Flags for psprite layers
enum EPSpriteFlags
{
PSPF_ADDWEAPON = 1 << 0,
PSPF_ADDBOB = 1 << 1,
PSPF_POWDOUBLE = 1 << 2,
PSPF_CVARFAST = 1 << 3,
PSPF_FLIP = 1 << 6,
};
// Default psprite layers
enum EPSPLayers
{
PSP_STRIFEHANDS = -1,
PSP_WEAPON = 1,
PSP_FLASH = 1000,
};
enum EInputFlags
{
// These are the original inputs sent by the player.
INPUT_OLDBUTTONS,
INPUT_BUTTONS,
INPUT_PITCH,
INPUT_YAW,
INPUT_ROLL,
INPUT_FORWARDMOVE,
INPUT_SIDEMOVE,
INPUT_UPMOVE,
// These are the inputs, as modified by P_PlayerThink().
// Most of the time, these will match the original inputs, but
// they can be different if a player is frozen or using a
// chainsaw.
MODINPUT_OLDBUTTONS,
MODINPUT_BUTTONS,
MODINPUT_PITCH,
MODINPUT_YAW,
MODINPUT_ROLL,
MODINPUT_FORWARDMOVE,
MODINPUT_SIDEMOVE,
MODINPUT_UPMOVE
};
enum EButtons
{
BT_ATTACK = 1<<0, // Press "Fire".
BT_USE = 1<<1, // Use button, to open doors, activate switches.
BT_JUMP = 1<<2,
BT_CROUCH = 1<<3,
BT_TURN180 = 1<<4,
BT_ALTATTACK = 1<<5, // Press your other "Fire".
BT_RELOAD = 1<<6, // [XA] Reload key. Causes state jump in A_WeaponReady.
BT_ZOOM = 1<<7, // [XA] Zoom key. Ditto.
// The rest are all ignored by the play simulation and are for scripts.
BT_SPEED = 1<<8,
BT_STRAFE = 1<<9,
BT_MOVERIGHT = 1<<10,
BT_MOVELEFT = 1<<11,
BT_BACK = 1<<12,
BT_FORWARD = 1<<13,
BT_RIGHT = 1<<14,
BT_LEFT = 1<<15,
BT_LOOKUP = 1<<16,
BT_LOOKDOWN = 1<<17,
BT_MOVEUP = 1<<18,
BT_MOVEDOWN = 1<<19,
BT_SHOWSCORES = 1<<20,
BT_USER1 = 1<<21,
BT_USER2 = 1<<22,
BT_USER3 = 1<<23,
BT_USER4 = 1<<24,
};
// Flags for GetAngle
enum EGetAngleFlags
{
GAF_RELATIVE = 1,
GAF_SWITCH = 1 << 1,
};
//Flags for A_CopySpriteFrame
enum ECopySpriteFrameFlags
{
CPSF_NOSPRITE = 1,
CPSF_NOFRAME = 1 << 1,
};
//Flags for A_SetMaskRotation
enum EMaskRotationFlags
{
VRF_NOANGLESTART = 1,
VRF_NOANGLEEND = 1 << 1,
VRF_NOPITCHSTART = 1 << 2,
VRF_NOPITCHEND = 1 << 3,
VRF_NOANGLE = VRF_NOANGLESTART|VRF_NOANGLEEND,
VRF_NOPITCH = VRF_NOPITCHSTART|VRF_NOPITCHEND,
};
enum ERenderStyle
{
STYLE_None,
STYLE_Normal,
STYLE_Fuzzy,
STYLE_SoulTrans,
STYLE_OptFuzzy,
STYLE_Stencil,
STYLE_Translucent,
STYLE_Add,
STYLE_Shaded,
STYLE_TranslucentStencil,
STYLE_Shadow,
STYLE_Subtract,
STYLE_AddStencil,
STYLE_AddShaded,
};
// Type definition for the implicit 'callingstate' parameter that gets passed to action functions.
enum EStateType
{
STATE_Actor,
STATE_Psprite,
STATE_StateChain,
}
struct FStateParamInfo
{
state mCallingState;
/*EStateType*/int mStateType;
int mPSPIndex;
}
// returned by AimLineAttack.
struct FTranslatedLineTarget
{
Actor linetarget;
double angleFromSource;
bool unlinked; // found by a trace that went through an unlinked portal.
native void TraceBleed(int damage, Actor missile);
}
enum EAimFlags
{
ALF_FORCENOSMART = 1,
ALF_CHECK3D = 2,
ALF_CHECKNONSHOOTABLE = 4,
ALF_CHECKCONVERSATION = 8,
ALF_NOFRIENDS = 16,
ALF_PORTALRESTRICT = 32, // only work through portals with a global offset (to be used for stuff that cannot remember the calculated FTranslatedLineTarget info)
}
enum ELineAttackFlags
{
LAF_ISMELEEATTACK = 1,
LAF_NORANDOMPUFFZ = 2,
LAF_NOIMPACTDECAL = 4,
LAF_NOINTERACT = 8,
}
const MELEERANGE = 64;
const SAWRANGE = (64.+(1./65536.)); // use meleerange + 1 so the puff doesn't skip the flash (i.e. plays all states)
const MISSILERANGE = (32*64);
const PLAYERMISSILERANGE = 8192; // [RH] New MISSILERANGE for players
enum ESightFlags
{
SF_IGNOREVISIBILITY=1,
SF_SEEPASTSHOOTABLELINES=2,
SF_SEEPASTBLOCKEVERYTHING=4,
SF_IGNOREWATERBOUNDARY=8
}
enum EDmgFlags
{
DMG_NO_ARMOR = 1,
DMG_INFLICTOR_IS_PUFF = 2,
DMG_THRUSTLESS = 4,
DMG_FORCED = 8,
DMG_NO_FACTOR = 16,
DMG_PLAYERATTACK = 32,
DMG_FOILINVUL = 64,
DMG_FOILBUDDHA = 128,
DMG_NO_PROTECT = 256,
DMG_USEANGLE = 512,
}
enum EReplace
{
NO_REPLACE = 0,
ALLOW_REPLACE = 1
}
// This translucency value produces the closest match to Heretic's TINTTAB.
// ~40% of the value of the overlaid image shows through.
const HR_SHADOW = (0x6800 / 65536.);
// Hexen's TINTTAB is the same as Heretic's, just reversed.
const HX_SHADOW = (0x9800 / 65536.);
const HX_ALTSHADOW = (0x6800 / 65536.);
enum EMapThingFlags
{
MTF_AMBUSH = 0x0008, // Thing is deaf
MTF_DORMANT = 0x0010, // Thing is dormant (use Thing_Activate)
MTF_SINGLE = 0x0100, // Thing appears in single-player games
MTF_COOPERATIVE = 0x0200, // Thing appears in cooperative games
MTF_DEATHMATCH = 0x0400, // Thing appears in deathmatch games
MTF_SHADOW = 0x0800,
MTF_ALTSHADOW = 0x1000,
MTF_FRIENDLY = 0x2000,
MTF_STANDSTILL = 0x4000,
MTF_STRIFESOMETHING = 0x8000,
MTF_SECRET = 0x080000, // Secret pickup
MTF_NOINFIGHTING = 0x100000,
};
enum ESkillProperty
{
SKILLP_FastMonsters,
SKILLP_Respawn,
SKILLP_RespawnLimit,
SKILLP_DisableCheats,
SKILLP_AutoUseHealth,
SKILLP_SpawnFilter,
SKILLP_EasyBossBrain,
SKILLP_ACSReturn,
SKILLP_NoPain,
SKILLP_EasyKey,
SKILLP_SlowMonsters,
SKILLP_Infight,
};
enum EFSkillProperty // floating point properties
{
SKILLP_AmmoFactor,
SKILLP_DropAmmoFactor,
SKILLP_ArmorFactor,
SKILLP_HealthFactor,
SKILLP_DamageFactor,
SKILLP_Aggressiveness,
SKILLP_MonsterHealth,
SKILLP_FriendlyHealth,
};
enum EWeaponPos
{
WEAPONBOTTOM = 128,
WEAPONTOP = 32
}
enum ETranslationTable
{
TRANSLATION_Invalid,
TRANSLATION_Players,
TRANSLATION_PlayersExtra,
TRANSLATION_Standard,
TRANSLATION_LevelScripted,
TRANSLATION_Decals,
TRANSLATION_PlayerCorpses,
TRANSLATION_Decorate,
TRANSLATION_Blood,
TRANSLATION_RainPillar,
TRANSLATION_Custom,
};
enum EFindFloorCeiling
{
FFCF_ONLYSPAWNPOS = 1,
FFCF_SAMESECTOR = 2,
FFCF_ONLY3DFLOORS = 4, // includes 3D midtexes
FFCF_3DRESTRICT = 8, // ignore 3D midtexes and floors whose floorz are above thing's z
FFCF_NOPORTALS = 16, // ignore portals (considers them impassable.)
FFCF_NOFLOOR = 32,
FFCF_NOCEILING = 64,
FFCF_RESTRICTEDPORTAL = 128, // current values in the iterator's return are through a restricted portal type (i.e. some features are blocked.)
FFCF_NODROPOFF = 256, // Caller does not need a dropoff (saves some time when checking portals)
};