mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-02-20 10:53:27 +00:00
HWR_AllowModel
This commit is contained in:
parent
ca83bafae8
commit
228b29e23b
3 changed files with 31 additions and 8 deletions
|
@ -5368,14 +5368,20 @@ static void HWR_DrawSprites(void)
|
|||
if (!cv_grmodels.value || md2_playermodels[(skin_t*)spr->mobj->skin-skins].notfound || md2_playermodels[(skin_t*)spr->mobj->skin-skins].scale < 0.0f)
|
||||
HWR_DrawSprite(spr);
|
||||
else
|
||||
HWR_DrawModel(spr);
|
||||
{
|
||||
if (!HWR_DrawModel(spr))
|
||||
HWR_DrawSprite(spr);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!cv_grmodels.value || md2_models[spr->mobj->sprite].notfound || md2_models[spr->mobj->sprite].scale < 0.0f)
|
||||
HWR_DrawSprite(spr);
|
||||
else
|
||||
HWR_DrawModel(spr);
|
||||
{
|
||||
if (!HWR_DrawModel(spr))
|
||||
HWR_DrawSprite(spr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -985,6 +985,16 @@ static void HWR_GetBlendedTexture(GLPatch_t *gpatch, GLPatch_t *blendgpatch, INT
|
|||
#define NORMALFOG 0x00000000
|
||||
#define FADEFOG 0x19000000
|
||||
|
||||
static boolean HWR_AllowModel(mobj_t *mobj)
|
||||
{
|
||||
// Signpost overlay. Not needed.
|
||||
if (mobj->state-states == S_PLAY_SIGN)
|
||||
return false;
|
||||
|
||||
// Otherwise, render the model.
|
||||
return true;
|
||||
}
|
||||
|
||||
static boolean HWR_CanInterpolateModel(mobj_t *mobj, model_t *model)
|
||||
{
|
||||
if (cv_grmodelinterpolation.value == 2) // Always interpolate
|
||||
|
@ -1060,7 +1070,7 @@ static UINT8 HWR_GetModelSprite2(md2_t *md2, skin_t *skin, UINT8 spr2, player_t
|
|||
// HWR_DrawModel
|
||||
//
|
||||
|
||||
void HWR_DrawModel(gr_vissprite_t *spr)
|
||||
boolean HWR_DrawModel(gr_vissprite_t *spr)
|
||||
{
|
||||
FSurfaceInfo Surf;
|
||||
|
||||
|
@ -1073,10 +1083,10 @@ void HWR_DrawModel(gr_vissprite_t *spr)
|
|||
UINT8 color[4];
|
||||
|
||||
if (!cv_grmodels.value)
|
||||
return;
|
||||
return false;
|
||||
|
||||
if (spr->precip)
|
||||
return;
|
||||
return false;
|
||||
|
||||
memset(&p, 0x00, sizeof(FTransform));
|
||||
|
||||
|
@ -1166,7 +1176,7 @@ void HWR_DrawModel(gr_vissprite_t *spr)
|
|||
}
|
||||
|
||||
if (md2->error)
|
||||
return; // we already failed loading this before :(
|
||||
return false; // we already failed loading this before :(
|
||||
if (!md2->model)
|
||||
{
|
||||
//CONS_Debug(DBG_RENDER, "Loading model... (%s)", sprnames[spr->mobj->sprite]);
|
||||
|
@ -1182,9 +1192,14 @@ void HWR_DrawModel(gr_vissprite_t *spr)
|
|||
{
|
||||
//CONS_Debug(DBG_RENDER, " FAILED\n");
|
||||
md2->error = true; // prevent endless fail
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Lactozilla: Disallow certain models from rendering
|
||||
if (!HWR_AllowModel(spr->mobj))
|
||||
return false;
|
||||
|
||||
//HWD.pfnSetBlend(blend); // This seems to actually break translucency?
|
||||
finalscale = md2->scale;
|
||||
//Hurdler: arf, I don't like that implementation at all... too much crappy
|
||||
|
@ -1416,6 +1431,8 @@ void HWR_DrawModel(gr_vissprite_t *spr)
|
|||
|
||||
HWD.pfnDrawModel(md2->model, frame, durs, tics, nextFrame, &p, finalscale, flip, color);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif //HWRENDER
|
||||
|
|
|
@ -45,8 +45,8 @@ extern md2_t md2_models[NUMSPRITES];
|
|||
extern md2_t md2_playermodels[MAXSKINS];
|
||||
|
||||
void HWR_InitModels(void);
|
||||
void HWR_DrawModel(gr_vissprite_t *spr);
|
||||
void HWR_AddPlayerModel(INT32 skin);
|
||||
void HWR_AddSpriteModel(size_t spritenum);
|
||||
boolean HWR_DrawModel(gr_vissprite_t *spr);
|
||||
|
||||
#endif // _HW_MD2_H_
|
||||
|
|
Loading…
Reference in a new issue