mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'replay-unlock-hide' into 'replay-unlock-bodge'
Ghost/Replay locked character hide See merge request KartKrew/Kart!2012
This commit is contained in:
commit
f24ee80cc1
5 changed files with 55 additions and 31 deletions
|
|
@ -88,6 +88,7 @@ patch_t *kp_facenum[MAXPLAYERS+1];
|
|||
static patch_t *kp_facehighlight[8];
|
||||
|
||||
static patch_t *kp_nocontestminimap;
|
||||
static patch_t *kp_unknownminimap;
|
||||
static patch_t *kp_spbminimap;
|
||||
static patch_t *kp_wouldyoustillcatchmeifiwereaworm;
|
||||
static patch_t *kp_catcherminimap;
|
||||
|
|
@ -386,7 +387,7 @@ void K_LoadKartHUDGraphics(void)
|
|||
|
||||
// Special minimap icons
|
||||
HU_UpdatePatch(&kp_nocontestminimap, "MINIDEAD");
|
||||
|
||||
HU_UpdatePatch(&kp_unknownminimap, "HUHMAP");
|
||||
HU_UpdatePatch(&kp_spbminimap, "SPBMMAP");
|
||||
|
||||
HU_UpdatePatch(&kp_wouldyoustillcatchmeifiwereaworm, "MINIPROG");
|
||||
|
|
@ -4401,6 +4402,9 @@ static void K_drawKartMinimap(void)
|
|||
skin = ((skin_t*)g->mo->skin)-skins;
|
||||
else
|
||||
skin = 0;
|
||||
|
||||
workingPic = R_CanShowSkinInDemo(skin) ? faceprefix[skin][FACE_MINIMAP] : kp_unknownminimap;
|
||||
|
||||
if (g->mo->color)
|
||||
{
|
||||
if (g->mo->colorized)
|
||||
|
|
@ -4414,7 +4418,7 @@ static void K_drawKartMinimap(void)
|
|||
interpx = R_InterpolateFixed(g->mo->old_x, g->mo->x);
|
||||
interpy = R_InterpolateFixed(g->mo->old_y, g->mo->y);
|
||||
|
||||
K_drawKartMinimapIcon(interpx, interpy, x, y, splitflags, faceprefix[skin][FACE_MINIMAP], colormap);
|
||||
K_drawKartMinimapIcon(interpx, interpy, x, y, splitflags, workingPic, colormap);
|
||||
g = g->next;
|
||||
}
|
||||
}
|
||||
|
|
@ -4470,7 +4474,7 @@ static void K_drawKartMinimap(void)
|
|||
{
|
||||
skin = ((skin_t*)mobj->skin)-skins;
|
||||
|
||||
workingPic = faceprefix[skin][FACE_MINIMAP];
|
||||
workingPic = R_CanShowSkinInDemo(skin) ? faceprefix[skin][FACE_MINIMAP] : kp_unknownminimap;
|
||||
|
||||
if (mobj->color)
|
||||
{
|
||||
|
|
@ -4666,7 +4670,7 @@ static void K_drawKartMinimap(void)
|
|||
{
|
||||
skin = ((skin_t*)mobj->skin)-skins;
|
||||
|
||||
workingPic = faceprefix[skin][FACE_MINIMAP];
|
||||
workingPic = R_CanShowSkinInDemo(skin) ? faceprefix[skin][FACE_MINIMAP] : kp_unknownminimap;
|
||||
|
||||
if (mobj->color)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -229,7 +229,7 @@ UINT8 *R_GetSkinAvailabilities(boolean demolock, INT32 botforcecharacter)
|
|||
boolean R_SkinUsable(INT32 playernum, INT32 skinnum, boolean demoskins)
|
||||
{
|
||||
boolean needsunlocked = false;
|
||||
boolean useplayerstruct = ((Playing() || demo.playback) && playernum != -1);
|
||||
boolean useplayerstruct = ((Playing() || demo.playback) && playernum >= 0);
|
||||
UINT16 i;
|
||||
INT32 skinid;
|
||||
|
||||
|
|
@ -299,6 +299,13 @@ boolean R_SkinUsable(INT32 playernum, INT32 skinnum, boolean demoskins)
|
|||
return (boolean)(gamedata->unlocked[i]);
|
||||
}
|
||||
|
||||
boolean R_CanShowSkinInDemo(INT32 skinnum)
|
||||
{
|
||||
if (modeattacking == ATTACKING_NONE && !(demo.playback && demo.attract))
|
||||
return true;
|
||||
return R_SkinUsable(-2, skinnum, false);
|
||||
}
|
||||
|
||||
// Returns a random unlocked skin ID.
|
||||
UINT32 R_GetLocalRandomSkin(void)
|
||||
{
|
||||
|
|
@ -307,7 +314,7 @@ UINT32 R_GetLocalRandomSkin(void)
|
|||
|
||||
for (i = 0; i < numskins; i++)
|
||||
{
|
||||
if (!R_SkinUsable(-1, i, false))
|
||||
if (!R_SkinUsable(-2, i, false))
|
||||
continue;
|
||||
grabskins[usableskins++] = i;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,6 +115,7 @@ INT32 R_SkinAvailable(const char *name);
|
|||
INT32 R_SkinAvailableEx(const char *name, boolean demoskins);
|
||||
boolean R_SkinUsable(INT32 playernum, INT32 skinnum, boolean demoskins);
|
||||
UINT8 *R_GetSkinAvailabilities(boolean demolock, INT32 botforcecharacter);
|
||||
boolean R_CanShowSkinInDemo(INT32 skinnum);
|
||||
|
||||
// Setting
|
||||
void SetPlayerSkin(INT32 playernum,const char *skinname);
|
||||
|
|
|
|||
|
|
@ -44,6 +44,13 @@ INT32 R_ThingLightLevel(mobj_t* thing)
|
|||
{
|
||||
lightlevel -= 255;
|
||||
}
|
||||
|
||||
if (!R_CanShowSkinInDemo((skin_t*)thing->skin-skins)
|
||||
&& !thing->colorized
|
||||
&& !thing->hitlag)
|
||||
{
|
||||
lightlevel -= 128;
|
||||
}
|
||||
}
|
||||
|
||||
return lightlevel;
|
||||
|
|
|
|||
|
|
@ -835,37 +835,42 @@ boolean R_ThingIsFlashing(mobj_t *thing)
|
|||
|
||||
UINT8 *R_GetSpriteTranslation(vissprite_t *vis)
|
||||
{
|
||||
if (!(vis->cut & SC_PRECIP) &&
|
||||
R_ThingIsFlashing(vis->mobj))
|
||||
if (vis->cut & SC_PRECIP)
|
||||
{
|
||||
return R_GetTranslationColormap(TC_HITLAG, static_cast<skincolornum_t>(0), GTC_CACHE);
|
||||
// Simplified func, less safe properties to check
|
||||
if (vis->mobj->color)
|
||||
R_GetTranslationColormap(TC_DEFAULT, static_cast<skincolornum_t>(vis->mobj->color), GTC_CACHE);
|
||||
return NULL;
|
||||
}
|
||||
/*
|
||||
else if (R_SpriteIsFlashing(vis)) // Bosses "flash"
|
||||
|
||||
size_t skinnum = TC_DEFAULT;
|
||||
|
||||
if (vis->mobj->skin && vis->mobj->sprite == SPR_PLAY) // This thing is a player!
|
||||
{
|
||||
if (vis->mobj->type == MT_CYBRAKDEMON || vis->mobj->colorized)
|
||||
return R_GetTranslationColormap(TC_ALLWHITE, 0, GTC_CACHE);
|
||||
else if (vis->mobj->type == MT_METALSONIC_BATTLE)
|
||||
return R_GetTranslationColormap(TC_METALSONIC, 0, GTC_CACHE);
|
||||
else
|
||||
return R_GetTranslationColormap(TC_BOSS, 0, GTC_CACHE);
|
||||
}
|
||||
*/
|
||||
else if (vis->mobj->color)
|
||||
{
|
||||
// New colormap stuff for skins Tails 06-07-2002
|
||||
if (!(vis->cut & SC_PRECIP) && vis->mobj->colorized)
|
||||
return R_GetTranslationColormap(TC_RAINBOW, static_cast<skincolornum_t>(vis->mobj->color), GTC_CACHE);
|
||||
else if (!(vis->cut & SC_PRECIP) && vis->mobj->skin && vis->mobj->sprite == SPR_PLAY) // This thing is a player!
|
||||
skinnum = (skin_t*)vis->mobj->skin-skins;
|
||||
|
||||
// Hide not-yet-unlocked characters in replays from other people
|
||||
if (!R_CanShowSkinInDemo(skinnum))
|
||||
{
|
||||
size_t skinnum = (skin_t*)vis->mobj->skin-skins;
|
||||
return R_GetTranslationColormap((INT32)skinnum, static_cast<skincolornum_t>(vis->mobj->color), GTC_CACHE);
|
||||
skinnum = TC_BLINK;
|
||||
}
|
||||
else // Use the defaults
|
||||
return R_GetTranslationColormap(TC_DEFAULT, static_cast<skincolornum_t>(vis->mobj->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.
|
||||
return R_GetTranslationColormap(TC_DEFAULT, SKINCOLOR_BLUE, GTC_CACHE);
|
||||
|
||||
if (R_ThingIsFlashing(vis->mobj))
|
||||
{
|
||||
if (skinnum != (size_t)TC_BLINK)
|
||||
skinnum = TC_HITLAG;
|
||||
|
||||
return R_GetTranslationColormap(skinnum, static_cast<skincolornum_t>(0), GTC_CACHE);
|
||||
}
|
||||
|
||||
if (vis->mobj->color)
|
||||
{
|
||||
if (skinnum != (size_t)TC_BLINK && vis->mobj->colorized)
|
||||
skinnum = TC_RAINBOW;
|
||||
|
||||
return R_GetTranslationColormap(skinnum, static_cast<skincolornum_t>(vis->mobj->color), GTC_CACHE);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue