Cstat (sprite)

From EDukeWiki
Jump to navigation Jump to search

cstat is a bitfield for how to draw an actor, as well as a few flags for interaction.

Not to be confused with wall cstat.

Flags

The following values are used with sprite cstat.

Exposed Value Label Description
No 1 CSTAT_SPRITE_BLOCK Make sprite blockable
No 2 CSTAT_SPRITE_TRANSLUCENT Make sprite transparent
No 4 CSTAT_SPRITE_XFLIP Flip sprite around x-axis
No 8 CSTAT_SPRITE_YFLIP Flip sprite around y-axis
No 16 CSTAT_SPRITE_WALL Draw sprite as vertically flat (wall aligned)
No 32 CSTAT_SPRITE_FLOOR Draw sprite as horizontally flat (floor aligned)
No 64 CSTAT_SPRITE_ONE_SIDE Make sprite one sided
No 128 CSTAT_SPRITE_YCENTER Half submerged
No 256 CSTAT_SPRITE_BLOCK_HITSCAN Make sprite able to be hit by weapons
No 512 CSTAT_SPRITE_TRANS_FLIP Second transparency level (combine with cstat 2)
No 1024 Sprite will take priority being drawn over other sprites (may be subject to change)
No 2048 CSTAT_SPRITE_NOSHADE Sprite will not be forced to take shade of sector
No 8192 Sprite will not cast a Polymer shadow
No 16384 Sprite will be invisible but will still cast a Polymer shadow
No 32768 CSTAT_SPRITE_INVISIBLE Invisible (do not render, skip EVENT_ANIMATESPRITES)
Defines
define CSTAT_SPRITE_BLOCK               0x00000001
define CSTAT_SPRITE_TRANSLUCENT         0x00000002
define CSTAT_SPRITE_XFLIP               0x00000004
define CSTAT_SPRITE_YFLIP               0x00000008
define CSTAT_SPRITE_WALL                0x00000010
define CSTAT_SPRITE_FLOOR               0x00000020
define CSTAT_SPRITE_ONE_SIDE            0x00000040
define CSTAT_SPRITE_YCENTER             0x00000080
define CSTAT_SPRITE_BLOCK_HITSCAN       0x00000100
define CSTAT_SPRITE_TRANS_FLIP          0x00000200
define CSTAT_SPRITE_NOSHADE             0x00000800
define CSTAT_SPRITE_INVISIBLE           0x00008000