diff --git a/src/d_main.c b/src/d_main.c index 6d130d76..f61aa47b 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -321,7 +321,7 @@ static void D_Display(void) F_RunWipe(wipedefs[wipedefindex], gamestate != GS_TIMEATTACK); } - if (wipegamestate == GS_LEVEL && rendermode != render_none) + if (gamestate != GS_LEVEL && rendermode != render_none) { V_SetPaletteLump("PLAYPAL"); // Reset the palette R_ReInitColormaps(0, LUMPERROR); diff --git a/src/k_kart.c b/src/k_kart.c index 2a152162..28a566c9 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -4786,22 +4786,22 @@ void K_KartUpdatePosition(player_t *player) mo->y - players[i].mo->y), mo->z - players[i].mo->z) / FRACUNIT; - if (mo->health == player->starpostnum) + if (mo->health == player->starpostnum && (!mo->movecount || mo->movecount == player->laps+1)) { player->kartstuff[k_prevcheck] += pmo; ppcd++; } - if (mo->health == (player->starpostnum + 1)) + if (mo->health == (player->starpostnum + 1) && (!mo->movecount || mo->movecount == player->laps+1)) { player->kartstuff[k_nextcheck] += pmo; pncd++; } - if (mo->health == players[i].starpostnum) + if (mo->health == players[i].starpostnum && (!mo->movecount || mo->movecount == players[i].laps+1)) { players[i].kartstuff[k_prevcheck] += imo; ipcd++; } - if (mo->health == (players[i].starpostnum + 1)) + if (mo->health == (players[i].starpostnum + 1) && (!mo->movecount || mo->movecount == players[i].laps+1)) { players[i].kartstuff[k_nextcheck] += imo; incd++; diff --git a/src/p_map.c b/src/p_map.c index 115ea665..1e77dd81 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -3809,6 +3809,7 @@ void P_BouncePlayerMove(mobj_t *mo) fixed_t leadx, leady; fixed_t trailx, traily; fixed_t mmomx = 0, mmomy = 0; + fixed_t oldmomx = mo->momx, oldmomy = mo->momy; if (!mo->player) return; @@ -3897,7 +3898,9 @@ void P_BouncePlayerMove(mobj_t *mo) mo->player->cmomx = tmxmove; mo->player->cmomy = tmymove; - P_TryMove(mo, mo->x + tmxmove, mo->y + tmymove, true); + if (!P_TryMove(mo, mo->x + tmxmove, mo->y + tmymove, true)) { + P_TryMove(mo, mo->x - oldmomx, mo->y - oldmomy, true); + } } // diff --git a/src/p_mobj.c b/src/p_mobj.c index e393c11e..b7c6eda0 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -11896,6 +11896,7 @@ ML_NOCLIMB : Direction not controllable else if (i == MT_BOSS3WAYPOINT) // SRB2kart 120217 - Used to store checkpoint num { mobj->health = mthing->angle; + mobj->movecount = mthing->extrainfo; P_SetTarget(&mobj->tracer, waypointcap); P_SetTarget(&waypointcap, mobj); }