mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2025-02-07 15:31:02 +00:00
- fixed: The static event manager never got a link to the primary level.
This commit is contained in:
parent
37a79470de
commit
f38060d01b
4 changed files with 6 additions and 5 deletions
|
@ -217,7 +217,7 @@ void EventManager::InitHandler(PClass* type)
|
||||||
RegisterHandler(handler);
|
RegisterHandler(handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventManager::InitStaticHandlers(bool map)
|
void EventManager::InitStaticHandlers(FLevelLocals *l, bool map)
|
||||||
{
|
{
|
||||||
// don't initialize map handlers if restoring from savegame.
|
// don't initialize map handlers if restoring from savegame.
|
||||||
if (savegamerestore)
|
if (savegamerestore)
|
||||||
|
@ -225,6 +225,7 @@ void EventManager::InitStaticHandlers(bool map)
|
||||||
|
|
||||||
// just make sure
|
// just make sure
|
||||||
Shutdown();
|
Shutdown();
|
||||||
|
Level = l;
|
||||||
|
|
||||||
// initialize event handlers from gameinfo
|
// initialize event handlers from gameinfo
|
||||||
for (const FString& typeName : gameinfo.EventHandlers)
|
for (const FString& typeName : gameinfo.EventHandlers)
|
||||||
|
@ -241,7 +242,7 @@ void EventManager::InitStaticHandlers(bool map)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// initialize event handlers from mapinfo
|
// initialize event handlers from mapinfo
|
||||||
for (const FString& typeName : level.info->EventHandlers)
|
for (const FString& typeName : Level->info->EventHandlers)
|
||||||
{
|
{
|
||||||
PClass* type = GetHandlerClass(typeName);
|
PClass* type = GetHandlerClass(typeName);
|
||||||
if (IsStaticType(type))
|
if (IsStaticType(type))
|
||||||
|
|
|
@ -249,7 +249,7 @@ struct EventManager
|
||||||
// check type
|
// check type
|
||||||
bool IsStaticType(PClass* type);
|
bool IsStaticType(PClass* type);
|
||||||
// init static handlers
|
// init static handlers
|
||||||
void InitStaticHandlers(bool map);
|
void InitStaticHandlers(FLevelLocals *l, bool map);
|
||||||
// shutdown handlers
|
// shutdown handlers
|
||||||
void Shutdown();
|
void Shutdown();
|
||||||
|
|
||||||
|
|
|
@ -395,7 +395,7 @@ void PClassActor::StaticInit()
|
||||||
InitBotStuff();
|
InitBotStuff();
|
||||||
|
|
||||||
// reinit GLOBAL static stuff from gameinfo, once classes are loaded.
|
// reinit GLOBAL static stuff from gameinfo, once classes are loaded.
|
||||||
staticEventManager.InitStaticHandlers(false);
|
staticEventManager.InitStaticHandlers(primaryLevel, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
|
@ -423,7 +423,7 @@ void P_SetupLevel(FLevelLocals *Level, int position, bool newGame)
|
||||||
|
|
||||||
// [ZZ] init per-map static handlers. we need to call this before everything is set up because otherwise scripts don't receive PlayerEntered event
|
// [ZZ] init per-map static handlers. we need to call this before everything is set up because otherwise scripts don't receive PlayerEntered event
|
||||||
// (which happens at god-knows-what stage in this function, but definitely not the last part, because otherwise it'd work to put E_InitStaticHandlers before the player spawning)
|
// (which happens at god-knows-what stage in this function, but definitely not the last part, because otherwise it'd work to put E_InitStaticHandlers before the player spawning)
|
||||||
Level->localEventManager->InitStaticHandlers(true);
|
Level->localEventManager->InitStaticHandlers(Level, true);
|
||||||
|
|
||||||
// generate a checksum for the level, to be included and checked with savegames.
|
// generate a checksum for the level, to be included and checked with savegames.
|
||||||
map->GetChecksum(Level->md5);
|
map->GetChecksum(Level->md5);
|
||||||
|
|
Loading…
Reference in a new issue