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_facehighlight[8];
|
||||||
|
|
||||||
static patch_t *kp_nocontestminimap;
|
static patch_t *kp_nocontestminimap;
|
||||||
|
static patch_t *kp_unknownminimap;
|
||||||
static patch_t *kp_spbminimap;
|
static patch_t *kp_spbminimap;
|
||||||
static patch_t *kp_wouldyoustillcatchmeifiwereaworm;
|
static patch_t *kp_wouldyoustillcatchmeifiwereaworm;
|
||||||
static patch_t *kp_catcherminimap;
|
static patch_t *kp_catcherminimap;
|
||||||
|
|
@ -386,7 +387,7 @@ void K_LoadKartHUDGraphics(void)
|
||||||
|
|
||||||
// Special minimap icons
|
// Special minimap icons
|
||||||
HU_UpdatePatch(&kp_nocontestminimap, "MINIDEAD");
|
HU_UpdatePatch(&kp_nocontestminimap, "MINIDEAD");
|
||||||
|
HU_UpdatePatch(&kp_unknownminimap, "HUHMAP");
|
||||||
HU_UpdatePatch(&kp_spbminimap, "SPBMMAP");
|
HU_UpdatePatch(&kp_spbminimap, "SPBMMAP");
|
||||||
|
|
||||||
HU_UpdatePatch(&kp_wouldyoustillcatchmeifiwereaworm, "MINIPROG");
|
HU_UpdatePatch(&kp_wouldyoustillcatchmeifiwereaworm, "MINIPROG");
|
||||||
|
|
@ -4401,6 +4402,9 @@ static void K_drawKartMinimap(void)
|
||||||
skin = ((skin_t*)g->mo->skin)-skins;
|
skin = ((skin_t*)g->mo->skin)-skins;
|
||||||
else
|
else
|
||||||
skin = 0;
|
skin = 0;
|
||||||
|
|
||||||
|
workingPic = R_CanShowSkinInDemo(skin) ? faceprefix[skin][FACE_MINIMAP] : kp_unknownminimap;
|
||||||
|
|
||||||
if (g->mo->color)
|
if (g->mo->color)
|
||||||
{
|
{
|
||||||
if (g->mo->colorized)
|
if (g->mo->colorized)
|
||||||
|
|
@ -4414,7 +4418,7 @@ static void K_drawKartMinimap(void)
|
||||||
interpx = R_InterpolateFixed(g->mo->old_x, g->mo->x);
|
interpx = R_InterpolateFixed(g->mo->old_x, g->mo->x);
|
||||||
interpy = R_InterpolateFixed(g->mo->old_y, g->mo->y);
|
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;
|
g = g->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -4470,7 +4474,7 @@ static void K_drawKartMinimap(void)
|
||||||
{
|
{
|
||||||
skin = ((skin_t*)mobj->skin)-skins;
|
skin = ((skin_t*)mobj->skin)-skins;
|
||||||
|
|
||||||
workingPic = faceprefix[skin][FACE_MINIMAP];
|
workingPic = R_CanShowSkinInDemo(skin) ? faceprefix[skin][FACE_MINIMAP] : kp_unknownminimap;
|
||||||
|
|
||||||
if (mobj->color)
|
if (mobj->color)
|
||||||
{
|
{
|
||||||
|
|
@ -4666,7 +4670,7 @@ static void K_drawKartMinimap(void)
|
||||||
{
|
{
|
||||||
skin = ((skin_t*)mobj->skin)-skins;
|
skin = ((skin_t*)mobj->skin)-skins;
|
||||||
|
|
||||||
workingPic = faceprefix[skin][FACE_MINIMAP];
|
workingPic = R_CanShowSkinInDemo(skin) ? faceprefix[skin][FACE_MINIMAP] : kp_unknownminimap;
|
||||||
|
|
||||||
if (mobj->color)
|
if (mobj->color)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -229,7 +229,7 @@ UINT8 *R_GetSkinAvailabilities(boolean demolock, INT32 botforcecharacter)
|
||||||
boolean R_SkinUsable(INT32 playernum, INT32 skinnum, boolean demoskins)
|
boolean R_SkinUsable(INT32 playernum, INT32 skinnum, boolean demoskins)
|
||||||
{
|
{
|
||||||
boolean needsunlocked = false;
|
boolean needsunlocked = false;
|
||||||
boolean useplayerstruct = ((Playing() || demo.playback) && playernum != -1);
|
boolean useplayerstruct = ((Playing() || demo.playback) && playernum >= 0);
|
||||||
UINT16 i;
|
UINT16 i;
|
||||||
INT32 skinid;
|
INT32 skinid;
|
||||||
|
|
||||||
|
|
@ -299,6 +299,13 @@ boolean R_SkinUsable(INT32 playernum, INT32 skinnum, boolean demoskins)
|
||||||
return (boolean)(gamedata->unlocked[i]);
|
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.
|
// Returns a random unlocked skin ID.
|
||||||
UINT32 R_GetLocalRandomSkin(void)
|
UINT32 R_GetLocalRandomSkin(void)
|
||||||
{
|
{
|
||||||
|
|
@ -307,7 +314,7 @@ UINT32 R_GetLocalRandomSkin(void)
|
||||||
|
|
||||||
for (i = 0; i < numskins; i++)
|
for (i = 0; i < numskins; i++)
|
||||||
{
|
{
|
||||||
if (!R_SkinUsable(-1, i, false))
|
if (!R_SkinUsable(-2, i, false))
|
||||||
continue;
|
continue;
|
||||||
grabskins[usableskins++] = i;
|
grabskins[usableskins++] = i;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -115,6 +115,7 @@ INT32 R_SkinAvailable(const char *name);
|
||||||
INT32 R_SkinAvailableEx(const char *name, boolean demoskins);
|
INT32 R_SkinAvailableEx(const char *name, boolean demoskins);
|
||||||
boolean R_SkinUsable(INT32 playernum, INT32 skinnum, boolean demoskins);
|
boolean R_SkinUsable(INT32 playernum, INT32 skinnum, boolean demoskins);
|
||||||
UINT8 *R_GetSkinAvailabilities(boolean demolock, INT32 botforcecharacter);
|
UINT8 *R_GetSkinAvailabilities(boolean demolock, INT32 botforcecharacter);
|
||||||
|
boolean R_CanShowSkinInDemo(INT32 skinnum);
|
||||||
|
|
||||||
// Setting
|
// Setting
|
||||||
void SetPlayerSkin(INT32 playernum,const char *skinname);
|
void SetPlayerSkin(INT32 playernum,const char *skinname);
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,13 @@ INT32 R_ThingLightLevel(mobj_t* thing)
|
||||||
{
|
{
|
||||||
lightlevel -= 255;
|
lightlevel -= 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!R_CanShowSkinInDemo((skin_t*)thing->skin-skins)
|
||||||
|
&& !thing->colorized
|
||||||
|
&& !thing->hitlag)
|
||||||
|
{
|
||||||
|
lightlevel -= 128;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return lightlevel;
|
return lightlevel;
|
||||||
|
|
|
||||||
|
|
@ -835,37 +835,42 @@ boolean R_ThingIsFlashing(mobj_t *thing)
|
||||||
|
|
||||||
UINT8 *R_GetSpriteTranslation(vissprite_t *vis)
|
UINT8 *R_GetSpriteTranslation(vissprite_t *vis)
|
||||||
{
|
{
|
||||||
if (!(vis->cut & SC_PRECIP) &&
|
if (vis->cut & SC_PRECIP)
|
||||||
R_ThingIsFlashing(vis->mobj))
|
|
||||||
{
|
{
|
||||||
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)
|
skinnum = (skin_t*)vis->mobj->skin-skins;
|
||||||
return R_GetTranslationColormap(TC_ALLWHITE, 0, GTC_CACHE);
|
|
||||||
else if (vis->mobj->type == MT_METALSONIC_BATTLE)
|
// Hide not-yet-unlocked characters in replays from other people
|
||||||
return R_GetTranslationColormap(TC_METALSONIC, 0, GTC_CACHE);
|
if (!R_CanShowSkinInDemo(skinnum))
|
||||||
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!
|
|
||||||
{
|
{
|
||||||
size_t skinnum = (skin_t*)vis->mobj->skin-skins;
|
skinnum = TC_BLINK;
|
||||||
return R_GetTranslationColormap((INT32)skinnum, static_cast<skincolornum_t>(vis->mobj->color), GTC_CACHE);
|
|
||||||
}
|
}
|
||||||
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;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue