- Static NewGame events now fire before loading a map, and normal NewGame events fire after registering per-map handlers and before all other events.
- Static event handlers now unregister after per-map handlers. - All event handlers now unregister in reverse order.
This commit is contained in:
parent
2dec7bb1e5
commit
04ae32f6f9
7 changed files with 33 additions and 21 deletions
|
|
@ -526,11 +526,8 @@ void G_InitNew (const char *mapname, bool bTitleLevel)
|
|||
{
|
||||
gamestate = GS_LEVEL;
|
||||
}
|
||||
G_DoLoadLevel (0, false);
|
||||
if(!savegamerestore)
|
||||
{
|
||||
E_NewGame();
|
||||
}
|
||||
|
||||
G_DoLoadLevel (0, false, !savegamerestore);
|
||||
}
|
||||
|
||||
//
|
||||
|
|
@ -744,7 +741,7 @@ void G_DoCompleted (void)
|
|||
if (gamestate == GS_TITLELEVEL)
|
||||
{
|
||||
level.MapName = nextlevel;
|
||||
G_DoLoadLevel (startpos, false);
|
||||
G_DoLoadLevel (startpos, false, false);
|
||||
startpos = 0;
|
||||
viewactive = true;
|
||||
return;
|
||||
|
|
@ -919,7 +916,7 @@ void DAutosaver::Tick ()
|
|||
|
||||
extern gamestate_t wipegamestate;
|
||||
|
||||
void G_DoLoadLevel (int position, bool autosave)
|
||||
void G_DoLoadLevel (int position, bool autosave, bool newGame)
|
||||
{
|
||||
static int lastposition = 0;
|
||||
gamestate_t oldgs = gamestate;
|
||||
|
|
@ -1005,7 +1002,12 @@ void G_DoLoadLevel (int position, bool autosave)
|
|||
|
||||
level.maptime = 0;
|
||||
|
||||
P_SetupLevel (level.MapName, position);
|
||||
if (newGame)
|
||||
{
|
||||
E_NewGame(false);
|
||||
}
|
||||
|
||||
P_SetupLevel (level.MapName, position, newGame);
|
||||
|
||||
AM_LevelInit();
|
||||
|
||||
|
|
@ -1253,7 +1255,7 @@ void G_DoWorldDone (void)
|
|||
level.MapName = nextlevel;
|
||||
}
|
||||
G_StartTravel ();
|
||||
G_DoLoadLevel (startpos, true);
|
||||
G_DoLoadLevel (startpos, true, false);
|
||||
startpos = 0;
|
||||
gameaction = ga_nothing;
|
||||
viewactive = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue