mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-03-10 03:12:15 +00:00
Reduce code duplication
This commit is contained in:
parent
b65d8d1010
commit
62f3454268
4 changed files with 24 additions and 62 deletions
src
|
@ -5504,45 +5504,7 @@ static void HWR_ProjectSprite(mobj_t *thing)
|
|||
translation = thing->translation;
|
||||
|
||||
//Hurdler: 25/04/2000: now support colormap in hardware mode
|
||||
if (R_ThingIsFlashing(vis->mobj)) // Bosses "flash"
|
||||
{
|
||||
if (vis->mobj->type == MT_CYBRAKDEMON || vis->mobj->colorized)
|
||||
vis->colormap = R_GetTranslationColormap(TC_ALLWHITE, 0, GTC_CACHE);
|
||||
else if (vis->mobj->type == MT_METALSONIC_BATTLE)
|
||||
vis->colormap = R_GetTranslationColormap(TC_METALSONIC, 0, GTC_CACHE);
|
||||
else
|
||||
vis->colormap = R_GetTranslationColormap(TC_BOSS, color, GTC_CACHE);
|
||||
}
|
||||
else if (translation != 0)
|
||||
{
|
||||
remaptable_t *tr = R_GetTranslationByID(translation);
|
||||
if (tr != NULL)
|
||||
vis->colormap = tr->remap;
|
||||
}
|
||||
else if (color != SKINCOLOR_NONE)
|
||||
{
|
||||
// New colormap stuff for skins Tails 06-07-2002
|
||||
if (thing->colorized)
|
||||
vis->colormap = R_GetTranslationColormap(TC_RAINBOW, color, GTC_CACHE);
|
||||
else if (thing->player && thing->player->dashmode >= DASHMODE_THRESHOLD
|
||||
&& (thing->player->charflags & SF_DASHMODE)
|
||||
&& ((leveltime/2) & 1))
|
||||
{
|
||||
if (thing->player->charflags & SF_MACHINE)
|
||||
vis->colormap = R_GetTranslationColormap(TC_DASHMODE, 0, GTC_CACHE);
|
||||
else
|
||||
vis->colormap = R_GetTranslationColormap(TC_RAINBOW, color, GTC_CACHE);
|
||||
}
|
||||
else if (thing->skin && thing->sprite == SPR_PLAY) // This thing is a player!
|
||||
{
|
||||
size_t skinnum = (skin_t*)thing->skin-skins;
|
||||
vis->colormap = R_GetTranslationColormap((INT32)skinnum, color, GTC_CACHE);
|
||||
}
|
||||
else
|
||||
vis->colormap = NULL;
|
||||
}
|
||||
else
|
||||
vis->colormap = NULL;
|
||||
vis->colormap = R_GetTranslationForThing(vis->mobj, color, translation);
|
||||
|
||||
// set top/bottom coords
|
||||
vis->gzt = gzt;
|
||||
|
|
|
@ -408,7 +408,7 @@ static void R_RasterizeFloorSplat(floorsplat_t *pSplat, vector2_t *verts, visspr
|
|||
}
|
||||
|
||||
ds_colormap = vis->colormap;
|
||||
ds_translation = R_GetSpriteTranslation(vis);
|
||||
ds_translation = R_GetTranslationForThing(vis->mobj, vis->color, vis->translation);
|
||||
if (ds_translation == NULL)
|
||||
ds_translation = colormaps;
|
||||
|
||||
|
|
|
@ -766,46 +766,46 @@ void R_DrawFlippedMaskedColumn(column_t *column)
|
|||
dc_texturemid = basetexturemid;
|
||||
}
|
||||
|
||||
UINT8 *R_GetSpriteTranslation(vissprite_t *vis)
|
||||
UINT8 *R_GetTranslationForThing(mobj_t *mobj, skincolornum_t color, UINT16 translation)
|
||||
{
|
||||
if (R_ThingIsFlashing(vis->mobj)) // Bosses "flash"
|
||||
if (R_ThingIsFlashing(mobj)) // Bosses "flash"
|
||||
{
|
||||
if (vis->mobj->type == MT_CYBRAKDEMON || vis->mobj->colorized)
|
||||
if (mobj->type == MT_CYBRAKDEMON || mobj->colorized)
|
||||
return R_GetTranslationColormap(TC_ALLWHITE, 0, GTC_CACHE);
|
||||
else if (vis->mobj->type == MT_METALSONIC_BATTLE)
|
||||
else if (mobj->type == MT_METALSONIC_BATTLE)
|
||||
return R_GetTranslationColormap(TC_METALSONIC, 0, GTC_CACHE);
|
||||
else
|
||||
return R_GetTranslationColormap(TC_BOSS, vis->color, GTC_CACHE);
|
||||
return R_GetTranslationColormap(TC_BOSS, color, GTC_CACHE);
|
||||
}
|
||||
else if (vis->translation)
|
||||
else if (translation != 0)
|
||||
{
|
||||
remaptable_t *tr = R_GetTranslationByID(vis->translation);
|
||||
remaptable_t *tr = R_GetTranslationByID(translation);
|
||||
if (tr != NULL)
|
||||
return tr->remap;
|
||||
}
|
||||
else if (vis->color)
|
||||
else if (color != SKINCOLOR_NONE)
|
||||
{
|
||||
// New colormap stuff for skins Tails 06-07-2002
|
||||
if (vis->mobj->colorized)
|
||||
return R_GetTranslationColormap(TC_RAINBOW, vis->color, GTC_CACHE);
|
||||
else if (vis->mobj->player && vis->mobj->player->dashmode >= DASHMODE_THRESHOLD
|
||||
&& (vis->mobj->player->charflags & SF_DASHMODE)
|
||||
if (mobj->colorized)
|
||||
return R_GetTranslationColormap(TC_RAINBOW, color, GTC_CACHE);
|
||||
else if (mobj->player && mobj->player->dashmode >= DASHMODE_THRESHOLD
|
||||
&& (mobj->player->charflags & SF_DASHMODE)
|
||||
&& ((leveltime/2) & 1))
|
||||
{
|
||||
if (vis->mobj->player->charflags & SF_MACHINE)
|
||||
if (mobj->player->charflags & SF_MACHINE)
|
||||
return R_GetTranslationColormap(TC_DASHMODE, 0, GTC_CACHE);
|
||||
else
|
||||
return R_GetTranslationColormap(TC_RAINBOW, vis->color, GTC_CACHE);
|
||||
return R_GetTranslationColormap(TC_RAINBOW, color, GTC_CACHE);
|
||||
}
|
||||
else if (vis->mobj->skin && vis->mobj->sprite == SPR_PLAY) // This thing is a player!
|
||||
else if (mobj->skin && mobj->sprite == SPR_PLAY) // This thing is a player!
|
||||
{
|
||||
size_t skinnum = (skin_t*)vis->mobj->skin-skins;
|
||||
return R_GetTranslationColormap((INT32)skinnum, vis->color, GTC_CACHE);
|
||||
size_t skinnum = (skin_t*)mobj->skin-skins;
|
||||
return R_GetTranslationColormap((INT32)skinnum, color, GTC_CACHE);
|
||||
}
|
||||
else // Use the defaults
|
||||
return R_GetTranslationColormap(TC_DEFAULT, vis->color, GTC_CACHE);
|
||||
return R_GetTranslationColormap(TC_DEFAULT, color, GTC_CACHE);
|
||||
}
|
||||
else if (vis->mobj->sprite == SPR_PLAY) // Looks like a player, but doesn't have a color? Get rid of green sonic syndrome.
|
||||
else if (mobj->sprite == SPR_PLAY) // Looks like a player, but doesn't have a color? Get rid of green sonic syndrome.
|
||||
return R_GetTranslationColormap(TC_DEFAULT, SKINCOLOR_BLUE, GTC_CACHE);
|
||||
|
||||
return NULL;
|
||||
|
@ -853,7 +853,7 @@ static void R_DrawVisSprite(vissprite_t *vis)
|
|||
|
||||
colfunc = colfuncs[BASEDRAWFUNC]; // hack: this isn't resetting properly somewhere.
|
||||
dc_colormap = vis->colormap;
|
||||
dc_translation = R_GetSpriteTranslation(vis);
|
||||
dc_translation = R_GetTranslationForThing(vis->mobj, vis->color, vis->translation);
|
||||
|
||||
if (R_ThingIsFlashing(vis->mobj)) // Bosses "flash"
|
||||
colfunc = colfuncs[COLDRAWFUNC_TRANS]; // translate certain pixels to white
|
||||
|
|
|
@ -90,6 +90,8 @@ boolean R_ThingIsFullDark (mobj_t *thing);
|
|||
|
||||
boolean R_ThingIsFlashing (mobj_t *thing);
|
||||
|
||||
UINT8 *R_GetTranslationForThing(mobj_t *mobj, skincolornum_t color, UINT16 translation);
|
||||
|
||||
// --------------
|
||||
// MASKED DRAWING
|
||||
// --------------
|
||||
|
@ -229,8 +231,6 @@ void R_ClipSprites(drawseg_t* dsstart, portal_t* portal);
|
|||
|
||||
void R_DrawThingBoundingBox(vissprite_t *spr);
|
||||
|
||||
UINT8 *R_GetSpriteTranslation(vissprite_t *vis);
|
||||
|
||||
// ----------
|
||||
// DRAW NODES
|
||||
// ----------
|
||||
|
|
Loading…
Reference in a new issue