mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-11 15:21:51 +00:00
- Introduced an enum named EventHandlerType and changed the bool argument in E_NewGame to this type.
This commit is contained in:
parent
04ae32f6f9
commit
3e609f2b87
4 changed files with 14 additions and 6 deletions
|
@ -515,15 +515,17 @@ bool E_CheckReplacement( PClassActor *replacee, PClassActor **replacement )
|
||||||
return final;
|
return final;
|
||||||
}
|
}
|
||||||
|
|
||||||
void E_NewGame(bool map)
|
void E_NewGame(EventHandlerType handlerType)
|
||||||
{
|
{
|
||||||
|
bool isStatic = handlerType == EventHandlerType::Global;
|
||||||
|
|
||||||
// Shut down all per-map event handlers before static NewGame events.
|
// Shut down all per-map event handlers before static NewGame events.
|
||||||
if (!map)
|
if (isStatic)
|
||||||
E_Shutdown(true);
|
E_Shutdown(true);
|
||||||
|
|
||||||
for (DStaticEventHandler* handler = E_FirstEventHandler; handler; handler = handler->next)
|
for (DStaticEventHandler* handler = E_FirstEventHandler; handler; handler = handler->next)
|
||||||
{
|
{
|
||||||
if (handler->IsStatic() == !map)
|
if (handler->IsStatic() == isStatic)
|
||||||
handler->NewGame();
|
handler->NewGame();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,12 @@
|
||||||
|
|
||||||
class DStaticEventHandler;
|
class DStaticEventHandler;
|
||||||
|
|
||||||
|
enum class EventHandlerType
|
||||||
|
{
|
||||||
|
Global,
|
||||||
|
PerMap
|
||||||
|
};
|
||||||
|
|
||||||
// register
|
// register
|
||||||
bool E_RegisterHandler(DStaticEventHandler* handler);
|
bool E_RegisterHandler(DStaticEventHandler* handler);
|
||||||
// unregister
|
// unregister
|
||||||
|
@ -73,7 +79,7 @@ void E_Console(int player, FString name, int arg1, int arg2, int arg3, bool manu
|
||||||
bool E_CheckReplacement(PClassActor* replacee, PClassActor** replacement);
|
bool E_CheckReplacement(PClassActor* replacee, PClassActor** replacement);
|
||||||
|
|
||||||
// called on new game
|
// called on new game
|
||||||
void E_NewGame(bool map);
|
void E_NewGame(EventHandlerType handlerType);
|
||||||
|
|
||||||
// send networked event. unified function.
|
// send networked event. unified function.
|
||||||
bool E_SendNetworkEvent(FString name, int arg1, int arg2, int arg3, bool manual);
|
bool E_SendNetworkEvent(FString name, int arg1, int arg2, int arg3, bool manual);
|
||||||
|
|
|
@ -1004,7 +1004,7 @@ void G_DoLoadLevel (int position, bool autosave, bool newGame)
|
||||||
|
|
||||||
if (newGame)
|
if (newGame)
|
||||||
{
|
{
|
||||||
E_NewGame(false);
|
E_NewGame(EventHandlerType::Global);
|
||||||
}
|
}
|
||||||
|
|
||||||
P_SetupLevel (level.MapName, position, newGame);
|
P_SetupLevel (level.MapName, position, newGame);
|
||||||
|
|
|
@ -3722,7 +3722,7 @@ void P_SetupLevel (const char *lumpname, int position, bool newGame)
|
||||||
|
|
||||||
if (newGame)
|
if (newGame)
|
||||||
{
|
{
|
||||||
E_NewGame(true);
|
E_NewGame(EventHandlerType::PerMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [RH] Support loading Build maps (because I felt like it. :-)
|
// [RH] Support loading Build maps (because I felt like it. :-)
|
||||||
|
|
Loading…
Reference in a new issue