- 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
|
|
@ -301,7 +301,7 @@ void E_InitStaticHandlers(bool map)
|
|||
void E_Shutdown(bool map)
|
||||
{
|
||||
// delete handlers.
|
||||
for (DStaticEventHandler* handler = E_FirstEventHandler; handler; handler = handler->next)
|
||||
for (DStaticEventHandler* handler = E_LastEventHandler; handler; handler = handler->prev)
|
||||
{
|
||||
if (handler->IsStatic() == !map)
|
||||
handler->Destroy();
|
||||
|
|
@ -515,11 +515,16 @@ bool E_CheckReplacement( PClassActor *replacee, PClassActor **replacement )
|
|||
return final;
|
||||
}
|
||||
|
||||
void E_NewGame()
|
||||
void E_NewGame(bool map)
|
||||
{
|
||||
// Shut down all per-map event handlers before static NewGame events.
|
||||
if (!map)
|
||||
E_Shutdown(true);
|
||||
|
||||
for (DStaticEventHandler* handler = E_FirstEventHandler; handler; handler = handler->next)
|
||||
{
|
||||
handler->NewGame();
|
||||
if (handler->IsStatic() == !map)
|
||||
handler->NewGame();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue