From 5a43e313b52747d9a3fe0cace92a870d0be1d302 Mon Sep 17 00:00:00 2001 From: zsilencer Date: Sat, 23 Jan 2016 13:27:33 -0700 Subject: [PATCH] add can't kick host error --- data/language/english_uk.txt | 1 + src/localisation/string_ids.h | 1 + src/network/network.cpp | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/data/language/english_uk.txt b/data/language/english_uk.txt index 8ba52fcce9..f2aae800b0 100644 --- a/data/language/english_uk.txt +++ b/data/language/english_uk.txt @@ -4002,6 +4002,7 @@ STR_5660 :Modify Groups STR_5661 :Set Player Group STR_5662 :N/A STR_5663 :Clear Landscape +STR_5703 :Can't kick the host STR_5704 :Last Action: STR_5705 :Can't set to this group STR_5706 :Can't remove group that players belong to diff --git a/src/localisation/string_ids.h b/src/localisation/string_ids.h index c8b684f65e..722d48e4ab 100644 --- a/src/localisation/string_ids.h +++ b/src/localisation/string_ids.h @@ -2291,6 +2291,7 @@ enum { STR_ACTION_NA = 5662, STR_ACTION_CLEAR_LANDSCAPE = 5663, + STR_CANT_KICK_THE_HOST = 5703, STR_LAST_ACTION = 5704, STR_CANT_SET_TO_THIS_GROUP = 5705, STR_CANT_REMOVE_GROUP_THAT_PLAYERS_BELONG_TO = 5706, diff --git a/src/network/network.cpp b/src/network/network.cpp index a3d7243611..306fa36788 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -2142,6 +2142,12 @@ void game_command_modify_groups(int *eax, int *ebx, int *ecx, int *edx, int *esi void game_command_kick_player(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp) { uint8 playerid = (uint8)*eax; + NetworkPlayer* player = gNetwork.GetPlayerByID(playerid); + if (player && player->flags & NETWORK_PLAYER_FLAG_ISSERVER) { + RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, uint16) = STR_CANT_KICK_THE_HOST; + *ebx = MONEY32_UNDEFINED; + return; + } if (*ebx & GAME_COMMAND_FLAG_APPLY) { if (gNetwork.GetMode() == NETWORK_MODE_SERVER) { gNetwork.KickPlayer(playerid);