Navigate InfoSuite
Hosted At
DNR

Duke4
References - Cstat Flags

Cstat Flags

These are the cstat bitfield values for the three different object types in a map: sprites, walls, and sectors (floors/ceilings). I gathered this information from various sources including the source code documentation as well as the EDukeWiki, then reprocessed it to my liking. Cstat flags determine the way an object is rendered as well as a few special interactive properties. These values can be edited manually in 2D mode with F8 for walls and sprites, or F7 for sector floors/ceilings. The cstat is displayed as a decimal (base 10) value in 3D mode, but as a hexadecimal (base 16) value in 2D mode. The value you input in standard decimal will be automatically converted to hexadecimal.



In order to use multiple flag values, they must be added together. The majority of these values can be automatically assigned with standard keypresses in 3D mode, which are listed if applicable.


SPRITES
Bit Value Description Keypress
0 1 Enable blocking flag. [B]
1 2 Set as semi-transparent. [T]
2 4 Flip sprite around x-axis. [F]
3 8 Flip sprite around y-axis. [F]
4 16 Set as wall-aligned. [R]
5 32 Set as floor-aligned. [R]
6 64 Set as one-sided. [1]
7 128 Set as "true-centered" (as opposed to "foot-centered"). [C]
8 256 Enable hitscan flag. [H]
9 512 Set as transparent (must be combined with cstat value 2). [T]
10-14 1024-16384 *Reserved* N/A
15 32768 Set as intangible. Combine with other cstat values to make use of just the invisible effect. This flag is only assignable via Mapster32's manual editing menu (accessed with F8 in 2D mode). -



WALLS
Bit Value Description Keypress
0 1 Enable blocking flag. [B]
1 2 Enable "bottom texture swap". This makes the top and bottom half of a wall separately editable. However, they will still share repeat values. [2]
2 4 Align texture to floor (bottom orientation). [O]
3 8 Flip texture around x-axis. [F]
4 16 Set as masked wall. Two-sided masked walls must be manually set on each side (the keypress does this automatically). Use it in conjunction with Shift for a one-sided masked wall. [M]
5 32 Set as 'solid' one-sided masked wall. This differs from Shift + M in that the wall will not be compatible with transparency settings or invisible (pink) pixels. This type of masked wall must be used to make mirrors. [1]
6 64 Enable hitscan flag. [H]
7 128 Set as semi-transparent. The keypress applies itself to both sides. [T]
8 256 Flip texture around y-axis. [F]
9 512 Set as transparent (must be combined with cstat value 128). The keypress applies itself to both sides. [T]
10-15 1024-32768 *Reserved* N/A

Solid (non-masked) walls have no use for blocking/hitscan flags, and are not compatible with transparency settings for obvious reasons.




SECTORS (FLOORS/CEILINGS)
Bit Value Description Keypress
0 1 Set as parallaxed. [P]
1 2 Floor/Ceiling is sloped. [[ or ]]
2 4 Swap the texture's x and y axes. [F]
3 8 Enable texture expansion (more accurately described as "compression"). [E]
4 16 Flip texture around x-axis. [F]
5 32 Flip texture around y-axis. [F]
6 64 Enable relative alignment. [R]
7-15 128-32768 *Reserved* N/A
7 128 Masked Floor/Ceiling (unused remnant of the engine). [T] *
8 256 Translucent Masked Floor/Ceiling (unused remnant of the engine). [T] *
7+8 384 Reverse Translucent Masked Floor/Ceiling (unused remnant of the engine). [T] *

Floor and ceiling flag values are treated separately. They also aren't technically "cstat" flags, but they're used in a similar manner.


* These keypresses are only available in Mapster32.




Return to top