diff --git a/src/deh_tables.c b/src/deh_tables.c index 30dcd4db7..b4abaf850 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -1034,6 +1034,7 @@ struct int_const_s const INT_CONST[] = { #else {"RF_NOMODEL",0}, #endif + {"RF_NOAFFINE",RF_NOAFFINE}, {"RF_DONTDRAW",RF_DONTDRAW}, {"RF_DONTDRAWP1",RF_DONTDRAWP1}, {"RF_DONTDRAWP2",RF_DONTDRAWP2}, @@ -1046,6 +1047,7 @@ struct int_const_s const INT_CONST[] = { {"RF_REVERSESUBTRACT",RF_REVERSESUBTRACT}, {"RF_MODULATE",RF_MODULATE}, {"RF_OVERLAY",RF_OVERLAY}, + {"RF_AFFINEPRESCALE",RF_AFFINEPRESCALE}, {"RF_TRANSMASK",RF_TRANSMASK}, {"RF_TRANSSHIFT",RF_TRANSSHIFT}, {"RF_TRANS10",RF_TRANS10}, @@ -1059,9 +1061,6 @@ struct int_const_s const INT_CONST[] = { {"RF_TRANS90",RF_TRANS90}, {"RF_GHOSTLY",RF_GHOSTLY}, {"RF_GHOSTLYMASK",RF_GHOSTLYMASK}, - {"RF2_NOAFFINE",RF2_NOAFFINE}, - {"RF2_AFFINEPAPER",RF2_AFFINEPAPER}, - {"RF2_AFFINEPRESCALE",RF2_AFFINEPRESCALE}, // Level flags {"LF_SCRIPTISFILE",LF_SCRIPTISFILE}, diff --git a/src/lua_mobjlib.c b/src/lua_mobjlib.c index f8521fbe7..87b65fca8 100644 --- a/src/lua_mobjlib.c +++ b/src/lua_mobjlib.c @@ -62,7 +62,9 @@ enum mobj_e { mobj_flags2, mobj_eflags, mobj_renderflags, +#if 0 mobj_renderflags2, +#endif mobj_skin, mobj_voice, mobj_color, @@ -161,7 +163,9 @@ static const char *const mobj_opt[] = { "flags2", "eflags", "renderflags", +#if 0 "renderflags2", +#endif "skin", "voice", "color", @@ -431,9 +435,11 @@ static int mobj_get(lua_State *L) case mobj_renderflags: lua_pushinteger(L, mo->renderflags); break; +#if 0 case mobj_renderflags2: lua_pushinteger(L, mo->renderflags2); break; +#endif case mobj_skin: // skin name or nil, not struct if (!mo->skin) return 0; @@ -906,9 +912,11 @@ static int mobj_set(lua_State *L) case mobj_renderflags: mo->renderflags = (UINT32)luaL_checkinteger(L, 3); break; +#if 0 case mobj_renderflags2: mo->renderflags2 = (UINT32)luaL_checkinteger(L, 3); break; +#endif case mobj_skin: // set skin by name { INT32 i; diff --git a/src/p_mobj.h b/src/p_mobj.h index 004508530..bc8b55854 100644 --- a/src/p_mobj.h +++ b/src/p_mobj.h @@ -305,7 +305,10 @@ struct mobj_t UINT8 sprite2; // player sprites UINT16 anim_duration; // for FF_ANIMATE states - UINT32 renderflags, renderflags2; // render flags + UINT32 renderflags; // render flags +#if 0 + UINT32 renderflags2; // More render flags +#endif fixed_t spritexscale, spriteyscale; fixed_t spritexoffset, spriteyoffset; fixed_t old_spritexscale, old_spriteyscale; @@ -494,7 +497,10 @@ struct precipmobj_t UINT8 sprite2; // player sprites UINT16 anim_duration; // for FF_ANIMATE states - UINT32 renderflags, renderflags2; // render flags + UINT32 renderflags; // render flags +#if 0 + UINT32 renderflags2; // More render flags +#endif fixed_t spritexscale, spriteyscale; fixed_t spritexoffset, spriteyoffset; fixed_t old_spritexscale, old_spriteyscale; diff --git a/src/p_saveg.c b/src/p_saveg.c index 235e68dc1..c65649570 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -2046,7 +2046,7 @@ static void DiffMobj(const mobj_t *mobj, UINT32 diff[]) DIFF(mobj->mirrored, MD2_MIRRORED); DIFF(mobj->rollangle, MD2_ROLLANGLE); DIFF(mobj->shadowscale, MD2_SHADOWSCALE); - DIFF(mobj->renderflags || mobj->renderflags2, MD2_RENDERFLAGS); + DIFF(mobj->renderflags /*|| mobj->renderflags2*/, MD2_RENDERFLAGS); DIFF(mobj->tid != 0, MD2_TID); DIFF(mobj->spritexscale != FRACUNIT || mobj->spriteyscale != FRACUNIT, MD2_SPRITESCALE); DIFF(mobj->spritexoffset || mobj->spriteyoffset || mobj->rollingxoffset || mobj->rollingyoffset, MD2_SPRITEOFFSET); @@ -2324,7 +2324,9 @@ static thinker_t *SyncMobjThinker(savebuffer_t *save, actionf_p1 thinker, thinke mobj->renderflags = READUINT32(save->p); } } +#if 0 SYNCF(MD2_RENDERFLAGS, mobj->renderflags2); +#endif SYNCF(MD2_TID, mobj->tid); SYNCDEF(MD2_SPRITESCALE, mobj->spritexscale, FRACUNIT); SYNCDEF(MD2_SPRITESCALE, mobj->spriteyscale, FRACUNIT); diff --git a/src/r_defs.h b/src/r_defs.h index 74e95cf2a..7856a1473 100644 --- a/src/r_defs.h +++ b/src/r_defs.h @@ -1004,6 +1004,7 @@ typedef enum #ifdef HWRENDER RF_NOMODEL = 0x00040000, // do not draw a model for this mobj in opengl, use its sprite instead #endif + RF_NOAFFINE = 0x00080000, // Disables affine drawing for this sprite RF_HIDESHIFT = (20), RF_DONTDRAW = 0x0F << RF_HIDESHIFT, // --Don't generate a vissprite @@ -1021,6 +1022,8 @@ typedef enum RF_MODULATE = ((AST_MODULATE-1)<frame & FF_AFFINEPAPER || thing->renderflags2 & RF2_AFFINEPAPER); - - return (thing->frame & FF_PAPERSPRITE || thing->renderflags & RF_PAPERSPRITE || affinepaper); + return (thing->frame & FF_PAPERSPRITE || thing->renderflags & RF_PAPERSPRITE); } boolean R_ThingIsAffineSprite(mobj_t *thing) { - boolean affinepaper = (thing->frame & FF_AFFINEPAPER || thing->renderflags2 & RF2_AFFINEPAPER); - - // Affine papersprites are messy in software rendering; let modders enable them at their own discretion. + // Affine papersprites are messy in software rendering. // Yes, I'm lazy; I've been at this for TWO WEEKS. - boolean papersprite = (R_ThingIsPaperSprite(thing) && !affinepaper); + boolean papersprite = (R_ThingIsPaperSprite(thing)); - boolean notaffine = ((thing->frame & FF_NOAFFINE || thing->renderflags2 & RF2_NOAFFINE) || papersprite); + boolean notaffine = ((thing->frame & FF_NOAFFINE || thing->renderflags & RF_NOAFFINE) || papersprite); return (!notaffine); } @@ -4398,7 +4394,7 @@ boolean R_ThingIsFullDark(mobj_t *thing) boolean R_AffinePreScale(mobj_t *thing) { - return (cv_affineprescale.value || thing->renderflags2 & RF2_AFFINEPRESCALE); + return (cv_affineprescale.value || thing->renderflags & RF_AFFINEPRESCALE); } //