mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'ghost-disposal' into 'master'
Don't leave the ghosts of ghosts lying around; revert NO CONTEST on death in TA Closes #1150 See merge request KartKrew/Kart!2095
This commit is contained in:
commit
33438aa448
4 changed files with 28 additions and 19 deletions
|
|
@ -1548,8 +1548,9 @@ skippedghosttic:
|
||||||
if (*g->p == DEMOMARKER)
|
if (*g->p == DEMOMARKER)
|
||||||
{
|
{
|
||||||
g->mo->momx = g->mo->momy = g->mo->momz = 0;
|
g->mo->momx = g->mo->momy = g->mo->momz = 0;
|
||||||
#if 1 // freeze frame (maybe more useful for time attackers)
|
#if 0 // freeze frame (maybe more useful for time attackers) (2024-03-11: you leave it behind anyway!)
|
||||||
g->mo->colorized = true;
|
g->mo->colorized = true;
|
||||||
|
g->mo->fuse = 10*TICRATE;
|
||||||
if (follow)
|
if (follow)
|
||||||
follow->colorized = true;
|
follow->colorized = true;
|
||||||
#else // dissapearing act
|
#else // dissapearing act
|
||||||
|
|
|
||||||
|
|
@ -4425,27 +4425,28 @@ static void K_drawKartMinimap(void)
|
||||||
demoghost *g = ghosts;
|
demoghost *g = ghosts;
|
||||||
while (g)
|
while (g)
|
||||||
{
|
{
|
||||||
if (g->mo->skin)
|
if (g->mo && !P_MobjWasRemoved(g->mo) && g->mo->skin)
|
||||||
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)
|
skin = ((skin_t*)g->mo->skin)-skins;
|
||||||
colormap = R_GetTranslationColormap(TC_RAINBOW, static_cast<skincolornum_t>(g->mo->color), GTC_CACHE);
|
|
||||||
|
workingPic = R_CanShowSkinInDemo(skin) ? faceprefix[skin][FACE_MINIMAP] : kp_unknownminimap;
|
||||||
|
|
||||||
|
if (g->mo->color)
|
||||||
|
{
|
||||||
|
if (g->mo->colorized)
|
||||||
|
colormap = R_GetTranslationColormap(TC_RAINBOW, static_cast<skincolornum_t>(g->mo->color), GTC_CACHE);
|
||||||
|
else
|
||||||
|
colormap = R_GetTranslationColormap(skin, static_cast<skincolornum_t>(g->mo->color), GTC_CACHE);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
colormap = R_GetTranslationColormap(skin, static_cast<skincolornum_t>(g->mo->color), GTC_CACHE);
|
colormap = NULL;
|
||||||
|
|
||||||
|
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, workingPic, colormap);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
colormap = NULL;
|
|
||||||
|
|
||||||
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, workingPic, colormap);
|
|
||||||
g = g->next;
|
g = g->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -509,6 +509,13 @@ static void K_MovePlayerToRespawnPoint(player_t *player)
|
||||||
player->respawn.distanceleft = 0;
|
player->respawn.distanceleft = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Almost all legitimate driving, no matter how clumsy, should be faster than death in TA.
|
||||||
|
// Advance only as far as we need to prevent respawn loops!
|
||||||
|
if (modeattacking)
|
||||||
|
{
|
||||||
|
player->respawn.distanceleft = 0;
|
||||||
|
}
|
||||||
|
|
||||||
player->respawn.wp = player->respawn.wp->nextwaypoints[nwp];
|
player->respawn.wp = player->respawn.wp->nextwaypoints[nwp];
|
||||||
K_RespawnAtWaypoint(player, player->respawn.wp);
|
K_RespawnAtWaypoint(player, player->respawn.wp);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2571,7 +2571,7 @@ static boolean P_KillPlayer(player_t *player, mobj_t *inflictor, mobj_t *source,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (modeattacking)
|
if (modeattacking & ATTACKING_SPB)
|
||||||
{
|
{
|
||||||
// Death in SPB Attack is an instant loss.
|
// Death in SPB Attack is an instant loss.
|
||||||
P_DoPlayerExit(player, PF_NOCONTEST);
|
P_DoPlayerExit(player, PF_NOCONTEST);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue