diff --git a/src/dehacked.c b/src/dehacked.c index 11aed24d..4c3b35a3 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -9812,7 +9812,7 @@ static inline int lib_getenum(lua_State *L) lua_pushinteger(L, mapmusflags); return 1; } else if (fastcmp(word,"server")) { - if ((!multiplayer || !netgame) && !playeringame[serverplayer]) + if ((!multiplayer || !(netgame || demoplayback)) && !playeringame[serverplayer]) return 0; LUA_PushUserdata(L, &players[serverplayer], META_PLAYER); return 1; diff --git a/src/g_game.c b/src/g_game.c index 452c5505..219bc815 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -6847,6 +6847,8 @@ void G_DoPlayDemo(char *defdemoname) // Load players that were in-game when the map started p = READUINT8(demo_p); + secondarydisplayplayer = thirddisplayplayer = fourthdisplayplayer = INT32_MAX; + while (p != 0xFF) { spectator = false; @@ -6857,7 +6859,7 @@ void G_DoPlayDemo(char *defdemoname) slots[numslots] = p; numslots++; if (!playeringame[displayplayer] || players[displayplayer].spectator) - displayplayer = consoleplayer = secondarydisplayplayer = thirddisplayplayer = fourthdisplayplayer = p; + displayplayer = consoleplayer = serverplayer = p; /*else if (!spectator && splitscreen < 3) { if (splitscreen == 0) { splitscreen = 1;