Merge branch 'marathon-mode-tokens' into 'next'
Fix emeralds, tokens, etc not resetting when restarting marathon mode in first level See merge request STJr/SRB2!1252
This commit is contained in:
commit
4275d52267
27
src/g_game.c
27
src/g_game.c
|
@ -2232,8 +2232,35 @@ void G_Ticker(boolean run)
|
||||||
// Costs a life to retry ... unless the player in question is dead already, or you haven't even touched the first starpost in marathon run.
|
// Costs a life to retry ... unless the player in question is dead already, or you haven't even touched the first starpost in marathon run.
|
||||||
if (marathonmode && gamemap == spmarathon_start && !players[consoleplayer].starposttime)
|
if (marathonmode && gamemap == spmarathon_start && !players[consoleplayer].starposttime)
|
||||||
{
|
{
|
||||||
|
player_t *p = &players[consoleplayer];
|
||||||
marathonmode |= MA_INIT;
|
marathonmode |= MA_INIT;
|
||||||
marathontime = 0;
|
marathontime = 0;
|
||||||
|
|
||||||
|
numgameovers = tokenlist = token = 0;
|
||||||
|
countdown = countdown2 = exitfadestarted = 0;
|
||||||
|
|
||||||
|
p->playerstate = PST_REBORN;
|
||||||
|
p->starpostx = p->starposty = p->starpostz = 0;
|
||||||
|
|
||||||
|
p->lives = startinglivesbalance[0];
|
||||||
|
p->continues = 1;
|
||||||
|
|
||||||
|
p->score = 0;
|
||||||
|
|
||||||
|
// The latter two should clear by themselves, but just in case
|
||||||
|
p->pflags &= ~(PF_TAGIT|PF_GAMETYPEOVER|PF_FULLSTASIS);
|
||||||
|
|
||||||
|
// Clear cheatcodes too, just in case.
|
||||||
|
p->pflags &= ~(PF_GODMODE|PF_NOCLIP|PF_INVIS);
|
||||||
|
|
||||||
|
p->xtralife = 0;
|
||||||
|
|
||||||
|
// Reset unlockable triggers
|
||||||
|
unlocktriggers = 0;
|
||||||
|
|
||||||
|
emeralds = 0;
|
||||||
|
|
||||||
|
memset(&luabanks, 0, sizeof(luabanks));
|
||||||
}
|
}
|
||||||
else if (G_GametypeUsesLives() && players[consoleplayer].playerstate == PST_LIVE && players[consoleplayer].lives != INFLIVES)
|
else if (G_GametypeUsesLives() && players[consoleplayer].playerstate == PST_LIVE && players[consoleplayer].lives != INFLIVES)
|
||||||
players[consoleplayer].lives -= 1;
|
players[consoleplayer].lives -= 1;
|
||||||
|
|
Loading…
Reference in a new issue