Cstat (wall): Difference between revisions

From EDukeWiki
Jump to navigation Jump to search
Fox (talk | contribs)
No edit summary
Jblade (talk | contribs)
mNo edit summary
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
A [[bitfield]] for how to draw a wall, as well as a few flags for interaction.  Add all together all wanted flag values.
A [[bitfield]] for how to draw a wall, as well as a few flags for interaction.  Add all together all wanted flag values.


Flag values for wall cstat are:
Unused bits are '''NOT''' free for user programming, but are rather reserved for potential future EDuke32 features.
 
Not to be confused with sprite [[cstat (sprite)|cstat]].
 
If the wall has cstat 2 applied to it (CSTAT_WALL_BOTTOM_SWAP) than the bottom half's attributes are applied to the current wall's [[nextwall]]


:'''1''' - Make wall blockable
== Flags ==
:'''2''' - Make bottoms of invisible walls swapped
:'''4''' - Align picture on bottom
:'''8''' - Flip wall around y-axis
:'''16''' - Make wall masked
:'''32''' - Make wall masked (opaque)
:'''64''' - Make wall able to be hit by weapons
:'''128''' - Make wall transparent
:'''256''' - Flip wall around x-axis
:'''512''' - Second transparency level (combine with cstat '''128''')


Unused bits are '''NOT''' free for user programming, but are rather reserved for potential future EDuke32 features.
{{Wall cstat}}


[[Category:Bitfields]]
[[Category:Bitfields]]
[[Category:Wall structure members]]
[[Category:Wall structure members]]

Latest revision as of 05:43, 5 April 2021

A bitfield for how to draw a wall, as well as a few flags for interaction. Add all together all wanted flag values.

Unused bits are NOT free for user programming, but are rather reserved for potential future EDuke32 features.

Not to be confused with sprite cstat.

If the wall has cstat 2 applied to it (CSTAT_WALL_BOTTOM_SWAP) than the bottom half's attributes are applied to the current wall's nextwall

Flags

The following values are used with wall cstat.

Exposed Value Label Description
No 1 CSTAT_WALL_BLOCK Make wall blockable
No 2 CSTAT_WALL_BOTTOM_SWAP Make bottoms of invisible walls swapped
No 4 CSTAT_WALL_ALIGN_BOTTOM Align picture on bottom
No 8 CSTAT_WALL_XFLIP Flip wall around x-axis
No 16 CSTAT_WALL_MASKED Make wall masking, two-sided
No 32 CSTAT_WALL_1WAY Make wall masking, one-sided. This disables rendering on the other side, meaning it can be used to avoid SOS glitches. However it also disables transparency on the masked wall.
No 64 CSTAT_WALL_BLOCK_HITSCAN Make wall able to be hit by weapons
No 128 CSTAT_WALL_TRANSLUCENT Make wall transparent
No 256 CSTAT_WALL_YFLIP Flip wall around y-axis
No 512 CSTAT_WALL_TRANS_FLIP Second transparency level (combine with cstat 128)
No 1024 CSTAT_WALL_YAX_UPWALL
No 2048 CSTAT_WALL_YAX_DOWNWALL
No 4096 CSTAT_WALL_ROTATE_90 Rotate texture by 90 degrees counter-clockwise. (3D-mode hotkey 'R' in mapster32)
No 16384 CSTAT_WALL_BLOCK_ACTOR Only used in Shadow Warrior
No 32768 CSTAT_WALL_WARP_HITSCAN Only used in Shadow Warrior
Defines
define CSTAT_WALL_BLOCK                 0x00000001
define CSTAT_WALL_BOTTOM_SWAP           0x00000002
define CSTAT_WALL_ALIGN_BOTTOM          0x00000004
define CSTAT_WALL_XFLIP                 0x00000008
define CSTAT_WALL_MASKED                0x00000010
define CSTAT_WALL_1WAY                  0x00000020
define CSTAT_WALL_BLOCK_HITSCAN         0x00000040
define CSTAT_WALL_TRANSLUCENT           0x00000080
define CSTAT_WALL_YFLIP                 0x00000100
define CSTAT_WALL_TRANS_FLIP            0x00000200
define CSTAT_WALL_YAX_UPWALL            0x00000400
define CSTAT_WALL_YAX_DOWNWALL          0x00000800
define CSTAT_WALL_ROTATE_90             0x00001000
define CSTAT_WALL_BLOCK_ACTOR           0x00004000
define CSTAT_WALL_WARP_HITSCAN          0x00008000