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 values 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 invisible. | - |
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 (must be set on both sides, keypress does this automatically). | [M ] |
5 | 32 | Set as 'solid' one-sided masked wall. | [1 ] |
6 | 64 | Enable hitscan flag. | [H ] |
7 | 128 | Set as semi-transparent. | [T ] |
8 | 256 | Flip texture around y-axis. | [F ] |
9 | 512 | Set as transparent (must be combined with cstat value 128). | [T ] |
10-15 | 1024-32768 | *Reserved* | N/A |
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). | - |
8 | 256 | Translucent Masked Floor/Ceiling (unused remnant of the engine). | - |
7+8 | 384 | Reverse Translucent Masked Floor/Ceiling (unused remnant of the engine). | - |
* Floors and ceilings can have separate values. They also aren't technically "cstat" values, but they're very similar.