diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 942ce8ed..739d3009 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -1756,6 +1756,9 @@ static void Got_Mapcmd(UINT8 **cp, INT32 playernum) UINT8 flags; INT32 resetplayer = 1, lastgametype; UINT8 skipprecutscene, FLS; +#ifdef HAVE_BLUA + INT16 mapnumber; +#endif if (playernum != serverplayer && playernum != adminplayer) { @@ -1817,7 +1820,8 @@ static void Got_Mapcmd(UINT8 **cp, INT32 playernum) } #ifdef HAVE_BLUA - LUAh_MapChange(); + mapnumber = M_MapNumber(mapname[3], mapname[4]); + LUAh_MapChange(mapnumber); #endif G_InitNew(ultimatemode, mapname, resetplayer, skipprecutscene); diff --git a/src/g_game.c b/src/g_game.c index d9135227..b1a3720e 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -2552,14 +2552,12 @@ void G_DoReborn(INT32 playernum) } } else -#ifdef HAVE_BLUA { - LUAh_MapChange(); +#ifdef HAVE_BLUA + LUAh_MapChange(gamemap); #endif G_DoLoadLevel(true); -#ifdef HAVE_BLUA } -#endif } else { @@ -5128,7 +5126,7 @@ void G_DoPlayDemo(char *defdemoname) demo_start = false; #ifdef HAVE_BLUA - LUAh_MapChange(); + LUAh_MapChange(gamemap); #endif displayplayer = consoleplayer = 0; memset(playeringame,0,sizeof(playeringame)); diff --git a/src/lua_hook.h b/src/lua_hook.h index 7c6ea2df..252960ed 100644 --- a/src/lua_hook.h +++ b/src/lua_hook.h @@ -49,7 +49,7 @@ enum hook { }; extern const char *const hookNames[]; -void LUAh_MapChange(void); // Hook for map change (before load) +void LUAh_MapChange(INT16 mapnumber); // Hook for map change (before load) void LUAh_MapLoad(void); // Hook for map load void LUAh_PlayerJoin(int playernum); // Hook for Got_AddPlayer void LUAh_ThinkFrame(void); // Hook for frame (after mobj and player thinkers) diff --git a/src/lua_hooklib.c b/src/lua_hooklib.c index 122f9aff..7e544ae9 100644 --- a/src/lua_hooklib.c +++ b/src/lua_hooklib.c @@ -315,14 +315,14 @@ boolean LUAh_PlayerHook(player_t *plr, enum hook which) } // Hook for map change (before load) -void LUAh_MapChange(void) +void LUAh_MapChange(INT16 mapnumber) { hook_p hookp; if (!gL || !(hooksAvailable[hook_MapChange/8] & (1<<(hook_MapChange%8)))) return; lua_settop(gL, 0); - lua_pushinteger(gL, gamemap); + lua_pushinteger(gL, mapnumber); for (hookp = roothook; hookp; hookp = hookp->next) if (hookp->type == hook_MapChange)