From dd37ca05c3d9ee1e58d63b4d94a142a6d60bef97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Mon, 25 Jan 2016 15:29:31 +0100 Subject: [PATCH] Disable opening cheats window in MP When connecting to a server, also reset cheats. This should fix #2811 --- data/language/english_uk.txt | 1 + src/localisation/string_ids.h | 2 ++ src/network/network.cpp | 3 +++ src/windows/cheats.c | 8 ++++++++ 4 files changed, 14 insertions(+) diff --git a/data/language/english_uk.txt b/data/language/english_uk.txt index 7bb0fd328a..18483afc05 100644 --- a/data/language/english_uk.txt +++ b/data/language/english_uk.txt @@ -4017,6 +4017,7 @@ STR_5712 :Can't modify permission that you do not have yourself STR_5713 :Kick Player STR_5714 :Show options window STR_5715 :New Game +STR_5716 :Not allowed in multiplayer mode ############# # Scenarios # diff --git a/src/localisation/string_ids.h b/src/localisation/string_ids.h index 3cd5c8ffc7..0424bb5689 100644 --- a/src/localisation/string_ids.h +++ b/src/localisation/string_ids.h @@ -2308,6 +2308,8 @@ enum { STR_NEW_GAME = 5715, + STR_NOT_ALLOWED_IN_MULTIPLAYER = 5716, + // Have to include resource strings (from scenarios and objects) for the time being now that language is partially working STR_COUNT = 32768 }; diff --git a/src/network/network.cpp b/src/network/network.cpp index 44239ea3ba..2033ba8b81 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -48,6 +48,7 @@ extern "C" { #include "../scenario.h" #include "../windows/error.h" #include "../util/util.h" +#include "../cheats.h" } #pragma comment(lib, "Ws2_32.lib") @@ -665,6 +666,7 @@ bool Network::BeginServer(unsigned short port, const char* address) return false; } + cheats_reset(); LoadGroups(); NetworkPlayer* player = AddPlayer(); @@ -852,6 +854,7 @@ void Network::UpdateClient() if (error == 0) { status = NETWORK_STATUS_CONNECTED; server_connection.ResetLastPacketTime(); + cheats_reset(); Client_Send_AUTH(gConfigNetwork.player_name, ""); window_network_status_open("Authenticating..."); } diff --git a/src/windows/cheats.c b/src/windows/cheats.c index 494ace1666..4f25e6b045 100644 --- a/src/windows/cheats.c +++ b/src/windows/cheats.c @@ -36,6 +36,7 @@ #include "../world/scenery.h" #include "../interface/themes.h" #include "../cheats.h" +#include "../network/network.h" #include "error.h" #define CHEATS_MONEY_INCREMENT MONEY(5000,00) @@ -760,6 +761,13 @@ static void cheat_set_staff_speed(uint8 value) void window_cheats_open() { +#ifndef DISABLE_NETWORK + if (network_get_mode() != NETWORK_MODE_NONE) + { + window_error_open(STR_WARNING_IN_CAPS, STR_NOT_ALLOWED_IN_MULTIPLAYER); + return; + } +#endif rct_window* window; // Check if window is already open