Add PSPF_PLAYERTRANSLATED flag (makes a PSprite layer translated to the user's color)

# Conflicts:
#	src/hwrenderer/scene/hw_weapon.cpp
#	src/r_data/models/models.cpp

# Conflicts:
#	src/gl/scene/gl_weapon.cpp
This commit is contained in:
Cacodemon345 2019-09-01 14:04:53 +06:00 committed by drfrag
parent b021befba8
commit 5ed070964c
6 changed files with 7 additions and 3 deletions

View file

@ -87,7 +87,7 @@ void GLSceneDrawer::DrawPSprite (player_t * player,DPSprite *psp, float sx, floa
FMaterial * tex = FMaterial::ValidateTexture(lump, true, false);
if (!tex) return;
gl_RenderState.SetMaterial(tex, CLAMP_XY_NOMIP, 0, OverrideShader, alphatexture);
gl_RenderState.SetMaterial(tex, CLAMP_XY_NOMIP, psp->Flags & PSPF_PLAYERTRANSLATED ? psp->Owner->mo->Translation : 0, OverrideShader, alphatexture);
float vw = (float)viewwidth;
float vh = (float)viewheight;

View file

@ -141,6 +141,7 @@ DEFINE_FIELD_BIT(DPSprite, Flags, bPowDouble, PSPF_POWDOUBLE)
DEFINE_FIELD_BIT(DPSprite, Flags, bCVarFast, PSPF_CVARFAST)
DEFINE_FIELD_BIT(DPSprite, Flags, bFlip, PSPF_FLIP)
DEFINE_FIELD_BIT(DPSprite, Flags, bMirror, PSPF_MIRROR)
DEFINE_FIELD_BIT(DPSprite, Flags, bPlayerTranslated, PSPF_PLAYERTRANSLATED)
//------------------------------------------------------------------------
//

View file

@ -68,6 +68,7 @@ enum PSPFlags
PSPF_FORCEALPHA = 1 << 7,
PSPF_FORCESTYLE = 1 << 8,
PSPF_MIRROR = 1 << 9,
PSPF_PLAYERTRANSLATED = 1 << 10
};
class DPSprite : public DObject

View file

@ -214,7 +214,7 @@ void FModelRenderer::RenderHUDModel(DPSprite *psp, float ofsX, float ofsY)
float orientation = smf->xscale * smf->yscale * smf->zscale;
BeginDrawHUDModel(playermo, objectToWorldMatrix, orientation < 0);
RenderFrameModels(smf, psp->GetState(), psp->GetTics(), playermo->player->ReadyWeapon->GetClass(), 0);
RenderFrameModels(smf, psp->GetState(), psp->GetTics(), playermo->player->ReadyWeapon->GetClass(), psp->Flags & PSPF_PLAYERTRANSLATED ? psp->Owner->mo->Translation : 0);
EndDrawHUDModel(playermo);
}

View file

@ -2557,7 +2557,8 @@ class PSprite : Object native play
native bool bCVarFast;
native bool bFlip;
native bool bMirror;
native bool bPlayerTranslated;
native void SetState(State newstate, bool pending = false);
//------------------------------------------------------------------------

View file

@ -748,6 +748,7 @@ enum EPSpriteFlags
PSPF_FORCEALPHA = 1 << 7,
PSPF_FORCESTYLE = 1 << 8,
PSPF_MIRROR = 1 << 9,
PSPF_PLAYERTRANSLATED = 1 << 10
};
// Default psprite layers