Fix bitflags enum renderflags_t for C++

This commit is contained in:
Eidolon 2026-03-15 15:36:11 -05:00
parent 252eca52c4
commit b2d15865df

View file

@ -935,69 +935,68 @@ struct pic_t
// Possible alpha types for a patch.
typedef enum {AST_COPY, AST_TRANSLUCENT, AST_ADD, AST_SUBTRACT, AST_REVERSESUBTRACT, AST_MODULATE, AST_OVERLAY, AST_FOG} patchalphastyle_t;
typedef enum
{
RF_HORIZONTALFLIP = 0x00000001, // Flip sprite horizontally
RF_VERTICALFLIP = 0x00000002, // Flip sprite vertically
RF_ABSOLUTEOFFSETS = 0x00000004, // Sprite uses the object's offsets absolutely, instead of relatively
RF_FLIPOFFSETS = 0x00000008, // Relative object offsets are flipped with the sprite
typedef int renderflags_t;
RF_SPLATMASK = 0x000000F0, // --Floor sprite flags
RF_SLOPESPLAT = 0x00000010, // Rotate floor sprites by a slope
RF_OBJECTSLOPESPLAT = 0x00000020, // Rotate floor sprites by the object's standing slope
RF_NOSPLATBILLBOARD = 0x00000040, // Don't billboard floor sprites (faces forward from the view angle)
RF_NOSPLATROLLANGLE = 0x00000080, // Don't rotate floor sprites by the object's rollangle (uses rotated patches instead)
#define RF_HORIZONTALFLIP (0x00000001) // Flip sprite horizontally
#define RF_VERTICALFLIP (0x00000002) // Flip sprite vertically
#define RF_ABSOLUTEOFFSETS (0x00000004) // Sprite uses the object's offsets absolutely, instead of relatively
#define RF_FLIPOFFSETS (0x00000008) // Relative object offsets are flipped with the sprite
RF_BRIGHTMASK = 0x00000300, // --Bright modes
RF_FULLBRIGHT = 0x00000100, // Sprite is drawn at full brightness
RF_FULLDARK = 0x00000200, // Sprite is drawn completely dark
RF_SEMIBRIGHT = (RF_FULLBRIGHT | RF_FULLDARK), // between sector bright and full bright
#define RF_SPLATMASK (0x000000F0) // --Floor sprite flags
#define RF_SLOPESPLAT (0x00000010) // Rotate floor sprites by a slope
#define RF_OBJECTSLOPESPLAT (0x00000020) // Rotate floor sprites by the object's standing slope
#define RF_NOSPLATBILLBOARD (0x00000040) // Don't billboard floor sprites (faces forward from the view angle)
#define RF_NOSPLATROLLANGLE (0x00000080) // Don't rotate floor sprites by the object's rollangle (uses rotated patches instead)
RF_NOCOLORMAPS = 0x00000400, // Sprite is not drawn with colormaps
#define RF_BRIGHTMASK (0x00000300) // --Bright modes
#define RF_FULLBRIGHT (0x00000100) // Sprite is drawn at full brightness
#define RF_FULLDARK (0x00000200) // Sprite is drawn completely dark
#define RF_SEMIBRIGHT (RF_FULLBRIGHT | RF_FULLDARK) // between sector bright and full bright
RF_ALWAYSONTOP = 0x00000800, // Sprite is drawn on top of level geometry
#define RF_NOCOLORMAPS (0x00000400) // Sprite is not drawn with colormaps
RF_SPRITETYPEMASK = 0x00003000, // --Different sprite types
RF_PAPERSPRITE = 0x00001000, // Paper sprite
RF_FLOORSPRITE = 0x00002000, // Floor sprite
#define RF_ALWAYSONTOP (0x00000800) // Sprite is drawn on top of level geometry
RF_SHADOWDRAW = 0x00004000, // Stretches and skews the sprite like a shadow.
RF_SHADOWEFFECTS = 0x00008000, // Scales and becomes transparent like a shadow.
RF_DROPSHADOW = (RF_SHADOWDRAW | RF_SHADOWEFFECTS | RF_FULLDARK),
#define RF_SPRITETYPEMASK (0x00003000) // --Different sprite types
#define RF_PAPERSPRITE (0x00001000) // Paper sprite
#define RF_FLOORSPRITE (0x00002000) // Floor sprite
RF_ABSOLUTELIGHTLEVEL = 0x00010000, // mobj_t.lightlevel is absolute instead of relative
RF_REDUCEVFX = 0x00020000, // only mobj_t.owner can see this object
RF_HIDEINSKYBOX = 0x00040000, // do not render in skybox
#define RF_SHADOWDRAW (0x00004000) // Stretches and skews the sprite like a shadow.
#define RF_SHADOWEFFECTS (0x00008000) // Scales and becomes transparent like a shadow.
#define RF_DROPSHADOW (RF_SHADOWDRAW | RF_SHADOWEFFECTS | RF_FULLDARK)
RF_DONTDRAW = 0x00F00000, // --Don't generate a vissprite
RF_DONTDRAWP1 = 0x00100000, // No P1
RF_DONTDRAWP2 = 0x00200000, // No P2
RF_DONTDRAWP3 = 0x00400000, // No P3
RF_DONTDRAWP4 = 0x00800000, // No P4
#define RF_ABSOLUTELIGHTLEVEL (0x00010000) // mobj_t.lightlevel is absolute instead of relative
#define RF_REDUCEVFX (0x00020000) // only mobj_t.owner can see this object
#define RF_HIDEINSKYBOX (0x00040000) // do not render in skybox
RF_BLENDMASK = 0x07000000, // --Blending override - see patchalphastyle_t
RF_BLENDSHIFT = (6*4),
// minus 1 as effects don't distinguish between AST_COPY and AST_TRANSLUCENT
RF_ADD = ((AST_ADD-1)<<RF_BLENDSHIFT),
RF_SUBTRACT = ((AST_SUBTRACT-1)<<RF_BLENDSHIFT),
RF_REVERSESUBTRACT = ((AST_REVERSESUBTRACT-1)<<RF_BLENDSHIFT),
RF_MODULATE = ((AST_MODULATE-1)<<RF_BLENDSHIFT),
RF_OVERLAY = ((AST_OVERLAY-1)<<RF_BLENDSHIFT),
#define RF_DONTDRAW (0x00F00000) // --Don't generate a vissprite
#define RF_DONTDRAWP1 (0x00100000) // No P1
#define RF_DONTDRAWP2 (0x00200000) // No P2
#define RF_DONTDRAWP3 (0x00400000) // No P3
#define RF_DONTDRAWP4 (0x00800000) // No P4
RF_TRANSMASK = (INT32)0xF0000000, // --Transparency override
RF_TRANSSHIFT = (7*4),
RF_TRANS10 = (1<<RF_TRANSSHIFT), // 10%
RF_TRANS20 = (2<<RF_TRANSSHIFT), // 20%
RF_TRANS30 = (3<<RF_TRANSSHIFT), // 30%
RF_TRANS40 = (4<<RF_TRANSSHIFT), // 40%
RF_TRANS50 = (5<<RF_TRANSSHIFT), // 50%
RF_TRANS60 = (6<<RF_TRANSSHIFT), // 60%
RF_TRANS70 = (7<<RF_TRANSSHIFT), // 70%
RF_TRANS80 = (INT32)(8U<<RF_TRANSSHIFT), // 80%
RF_TRANS90 = (INT32)(9U<<RF_TRANSSHIFT), // 90%
RF_GHOSTLY = (RF_TRANS80 | RF_FULLBRIGHT),
RF_GHOSTLYMASK = (RF_TRANSMASK | RF_FULLBRIGHT),
} renderflags_t;
#define RF_BLENDMASK (0x07000000) // --Blending override - see patchalphastyle_t
#define RF_BLENDSHIFT (6*4)
// minus 1 as effects don't distinguish between AST_COPY and AST_TRANSLUCENT
#define RF_ADD ((AST_ADD-1)<<RF_BLENDSHIFT)
#define RF_SUBTRACT ((AST_SUBTRACT-1)<<RF_BLENDSHIFT)
#define RF_REVERSESUBTRACT ((AST_REVERSESUBTRACT-1)<<RF_BLENDSHIFT)
#define RF_MODULATE ((AST_MODULATE-1)<<RF_BLENDSHIFT)
#define RF_OVERLAY ((AST_OVERLAY-1)<<RF_BLENDSHIFT)
#define RF_TRANSMASK ((INT32)0xF0000000) // --Transparency override
#define RF_TRANSSHIFT (7*4)
#define RF_TRANS10 (1<<RF_TRANSSHIFT) // 10%
#define RF_TRANS20 (2<<RF_TRANSSHIFT) // 20%
#define RF_TRANS30 (3<<RF_TRANSSHIFT) // 30%
#define RF_TRANS40 (4<<RF_TRANSSHIFT) // 40%
#define RF_TRANS50 (5<<RF_TRANSSHIFT) // 50%
#define RF_TRANS60 (6<<RF_TRANSSHIFT) // 60%
#define RF_TRANS70 (7<<RF_TRANSSHIFT) // 70%
#define RF_TRANS80 ((INT32)(8U<<RF_TRANSSHIFT)) // 80%
#define RF_TRANS90 ((INT32)(9U<<RF_TRANSSHIFT)) // 90%
#define RF_GHOSTLY (RF_TRANS80 | RF_FULLBRIGHT)
#define RF_GHOSTLYMASK (RF_TRANSMASK | RF_FULLBRIGHT)
typedef enum
{