diff --git a/src/r_defs.h b/src/r_defs.h index d3db090b2..f8a59bfd3 100644 --- a/src/r_defs.h +++ b/src/r_defs.h @@ -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)<