Spriteflags

From EDukeWiki
Jump to navigation Jump to search

spriteflags <picnum> <value>

spriteflags <value>

The first form is used outside of an actor code. It will set special flags to a tile. The values are the same as gameflags.

The second form is used inside of an actor code. It will set special flags for a sprite that exists in the map. The values are the same as htflags.

At game time, the per-tile value is XORed with the per-sprite value, i.e. the setting of one reverses the other.

The per-tile flags are also set by useractor. Meaning that the spriteflags should precede it, otherwise the values will be overwritten.

Flags

The following values are used with gameflags, htflags and spriteflags.

Exposed Value Hex Label Description
Yes 1 0x00000001 SFLAG_SHADOW Generates a shadow. See spriteshadow.
Yes 2 0x00000002 SFLAG_NVG Turns palette 6 whenever night vision goggles are used. See spritenvg.
Yes 4 0x00000004 SFLAG_NOSHADE The sprite's shade is unaffected by the shade of its sector. See spritenoshade.
No 8 0x00000008 SFLAG_PROJECTILE Has been defined with defineprojectile.
No 16 0x00000010 SFLAG_DECAL Prevents teleporting. The sprite is not entered into the decal deletion queue.
Yes 32 0x00000020 SFLAG_BADGUY Is an enemy. See useractor.
Yes 64 0x00000040 SFLAG_NOPAL Sprite will be insusceptible to floor palette of sector containing this sprite. See spritenopal.
Yes 128 0x00000080 SFLAG_NOEVENTS Sprite will not be run through EVENT_GAME or EVENT_PREGAME.
Yes 256 0x00000100 SFLAG_NOLIGHT Sprite will not emit hardcoded Polymer-based lights.
Yes 512 0x00000200 SFLAG_USEACTIVATOR
Internal 1024 0x00000400 SFLAG_NULL Null sprite in multiplayer [internal, do not use]
Yes 2048 0x00000800 SFLAG_NOCLIP Sprite will call "clipmove()" with a clipmask of 0, skipping collision detection with other sprites to increase performance. (Specifically, to prevent runtime behavior that is quadratic with the number of sprites.) Useful for particle effects.
No 4096 0x00001000 SFLAG_NOFLOORSHADOW
Yes 8192 0x00002000 SFLAG_SMOOTHMOVE
Yes 16384 0x00004000 SFLAG_NOTELEPORT
No 32768 0x00008000 SFLAG_BADGUYSTAYPUT Actor will stay inside its original sector..
No 65536 0x00010000 SFLAG_CACHE
No 131072 0x00020000 SFLAG_ROTFIXED rotation-fixed with respect to a pivot point to prevent position diverging due to roundoff error accumulation.
No 262144 0x00040000 SFLAG_HARDCODED_BADGUY
No 524288 0x00080000 SFLAG_DIDNOSE7WATER Used temporarily.
Yes 1048576 0x00100000 SFLAG_NODAMAGEPUSH Actor should not be pushed back when damaged (by default TANK, RECON, ROTATEGUN, and the bosses).
Yes 2097152 0x00200000 SFLAG_NOWATERDIP Actor will not appear to sink into the floor in sectors tagged Above Water (lotag 1).
Yes 4194304 0x00400000 SFLAG_HURTSPAWNBLOOD Actor will spawn blood as hardcoded enemies do when hurt.
Yes 8388608 0x00800000 SFLAG_GREENSLIMEFOOD Actor can be eaten by GREENSLIME actor (Protozoid Slimer). Can only be set outside of actor and event code whereupon it is applied to all sprites of the same picnum.
Yes 16777216 0x01000000 SFLAG_REALCLIPDIST Actor will always use its set clipdist instead of one potentially overridden in hardcoded circumstances based on its xrepeat and picnum.
Yes 33554432 0x02000000 SFLAG_WAKEUPBADGUYS When awoken (changed to an active actor), any sprite with this flag set will wake up any enemy with which it has a line of sight.
Yes 67108864 0x04000000 SFLAG_DAMAGEEVENT Actor fires EVENT_(POST)DAMAGESPRITE when damaged.
Yes 134217728 0x08000000 SFLAG_NOWATERSECTOR Will prevent a sprite from moving into water.
Yes 268435456 0x10000000 SFLAG_QUEUEDFORDELETE
Defines
define SFLAG_SHADOW                     0x00000001
define SFLAG_NVG                        0x00000002
define SFLAG_NOSHADE                    0x00000004
define SFLAG_PROJECTILE                 0x00000008
define SFLAG_DECAL                      0x00000010
define SFLAG_NULL                       0x00000400
define SFLAG_NOFLOORSHADOW              0x00001000
define SFLAG_BADGUYSTAYPUT              0x00008000
define SFLAG_CACHE                      0x00010000
define SFLAG_ROTFIXED                   0x00020000
define SFLAG_HARDCODED_BADGUY           0x00040000
define SFLAG_DIDNOSE7WATER              0x00080000
define SFLAG_HURTSPAWNBLOOD             0x00400000
define SFLAG_GREENSLIMEFOOD             0x00800000
define SFLAG_WAKEUPBADGUYS              0x02000000
define SFLAG_DAMAGEEVENT                0x04000000