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