From 4bb9c80001a9670227c7ec4509967cdf4275ce2d Mon Sep 17 00:00:00 2001 From: elexis Date: Thu, 9 Jun 2016 14:47:25 +0000 Subject: [PATCH] Continue to allow cheating and some other commands after winning the game. Refs #3168. This was SVN commit r18346. --- binaries/data/mods/public/gui/session/messages.js | 5 ++--- binaries/data/mods/public/gui/session/session.js | 8 +++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/binaries/data/mods/public/gui/session/messages.js b/binaries/data/mods/public/gui/session/messages.js index 9831cba310..4311c55f54 100644 --- a/binaries/data/mods/public/gui/session/messages.js +++ b/binaries/data/mods/public/gui/session/messages.js @@ -317,14 +317,13 @@ function getCheatsData() /** * Reads userinput from the chat and sends a simulation command in case it is a known cheat. - * Hence cheats won't be sent as chat over network. * - * @param {string} text * @returns {boolean} - True if a cheat was executed. */ function executeCheat(text) { - if (g_IsObserver || !g_Players[Engine.GetPlayerID()].cheatsEnabled) + if (!controlsPlayer(Engine.GetPlayerID()) || + !g_Players[Engine.GetPlayerID()].cheatsEnabled) return false; // Find the cheat code that is a prefix of the user input diff --git a/binaries/data/mods/public/gui/session/session.js b/binaries/data/mods/public/gui/session/session.js index 93fbb167b6..d48204e5ff 100644 --- a/binaries/data/mods/public/gui/session/session.js +++ b/binaries/data/mods/public/gui/session/session.js @@ -402,7 +402,13 @@ function isPlayerObserver(playerID) */ function controlsPlayer(playerID) { - return Engine.GetPlayerID() == playerID && !g_IsObserver || g_DevSettings.controlAll; + if (Engine.GetPlayerID() != playerID) + return false; + + let playerState = GetSimState().players[playerID]; + + return playerState && ( + playerState.state != "defeated" || playerState.controlsAll); } /**