diff --git a/src/g_game.c b/src/g_game.c index 03e286d80..7f421ddf8 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -2519,9 +2519,9 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) } } - if (p->spectator == false) + if (p->spectator == false && !betweenmaps) { - if (betweenmaps || enteredGame == true) + if (enteredGame == true) { ACS_RunPlayerEnterScript(p); } @@ -2530,15 +2530,6 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) ACS_RunPlayerRespawnScript(p); } } - - if (betweenmaps) - return; - - if (leveltime < starttime) - return; - - if (exiting) - return; } // diff --git a/src/p_setup.cpp b/src/p_setup.cpp index 180e6fc39..78927211b 100644 --- a/src/p_setup.cpp +++ b/src/p_setup.cpp @@ -8892,6 +8892,16 @@ void P_PostLoadLevel(void) ACS_RunLevelStartScripts(); LUA_HookInt(gamemap, HOOK(MapLoad)); + UINT8 i; + for (i = 0; i < MAXPLAYERS; i++) + { + if (!playeringame[i]) + continue; + if (players[i].spectator) + continue; + ACS_RunPlayerEnterScript(&players[i]); + } + P_MapEnd(); // We're now done loading the level.