From 22c7cd4179f710a3411de28bb6445fa1aac1c0d0 Mon Sep 17 00:00:00 2001 From: Ted John Date: Sun, 2 Oct 2016 12:28:28 +0100 Subject: [PATCH] Improve bad error messages in multiplayer window Set the title and text in the multiplayer commands to make sure it doesn't show an error box with the wrong text. --- src/network/network.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/network/network.cpp b/src/network/network.cpp index 439ed3c513..a6ed9d0f07 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -2057,20 +2057,26 @@ void game_command_set_player_group(int* eax, int* ebx, int* ecx, int* edx, int* NetworkPlayer* player = gNetwork.GetPlayerByID(playerid); NetworkGroup* fromgroup = gNetwork.GetGroupByID(game_command_playerid); if (!player) { + gGameCommandErrorTitle = STR_CANT_DO_THIS; + gGameCommandErrorText = STR_NONE; *ebx = MONEY32_UNDEFINED; return; } if (!gNetwork.GetGroupByID(groupid)) { + gGameCommandErrorTitle = STR_CANT_DO_THIS; + gGameCommandErrorText = STR_NONE; *ebx = MONEY32_UNDEFINED; return; } if (player->flags & NETWORK_PLAYER_FLAG_ISSERVER) { gGameCommandErrorTitle = STR_CANT_CHANGE_GROUP_THAT_THE_HOST_BELONGS_TO; + gGameCommandErrorText = STR_NONE; *ebx = MONEY32_UNDEFINED; return; } if (groupid == 0 && fromgroup && fromgroup->Id != 0) { gGameCommandErrorTitle = STR_CANT_SET_TO_THIS_GROUP; + gGameCommandErrorText = STR_NONE; *ebx = MONEY32_UNDEFINED; return; } @@ -2106,6 +2112,8 @@ void game_command_modify_groups(int *eax, int *ebx, int *ecx, int *edx, int *esi if (*ebx & GAME_COMMAND_FLAG_APPLY) { NetworkGroup* newgroup = gNetwork.AddGroup(); if (!newgroup) { + gGameCommandErrorTitle = STR_CANT_DO_THIS; + gGameCommandErrorText = STR_NONE; *ebx = MONEY32_UNDEFINED; return; } @@ -2114,12 +2122,14 @@ void game_command_modify_groups(int *eax, int *ebx, int *ecx, int *edx, int *esi case 1:{ // remove group if (groupid == 0) { gGameCommandErrorTitle = STR_THIS_GROUP_CANNOT_BE_MODIFIED; + gGameCommandErrorText = STR_NONE; *ebx = MONEY32_UNDEFINED; return; } for (auto it = gNetwork.player_list.begin(); it != gNetwork.player_list.end(); it++) { if((*it)->group == groupid) { gGameCommandErrorTitle = STR_CANT_REMOVE_GROUP_THAT_PLAYERS_BELONG_TO; + gGameCommandErrorText = STR_NONE; *ebx = MONEY32_UNDEFINED; return; } @@ -2134,6 +2144,7 @@ void game_command_modify_groups(int *eax, int *ebx, int *ecx, int *edx, int *esi bool allvalue = (*edx >> 1) & 1; if (groupid == 0) { // cant change admin group permissions gGameCommandErrorTitle = STR_THIS_GROUP_CANNOT_BE_MODIFIED; + gGameCommandErrorText = STR_NONE; *ebx = MONEY32_UNDEFINED; return; } @@ -2143,6 +2154,7 @@ void game_command_modify_groups(int *eax, int *ebx, int *ecx, int *edx, int *esi mygroup = gNetwork.GetGroupByID(player->group); if (!mygroup || (mygroup && !mygroup->CanPerformAction(index))) { gGameCommandErrorTitle = STR_CANT_MODIFY_PERMISSION_THAT_YOU_DO_NOT_HAVE_YOURSELF; + gGameCommandErrorText = STR_NONE; *ebx = MONEY32_UNDEFINED; return; } @@ -2201,6 +2213,7 @@ void game_command_modify_groups(int *eax, int *ebx, int *ecx, int *edx, int *esi case 4:{ // set default group if (groupid == 0) { gGameCommandErrorTitle = STR_CANT_SET_TO_THIS_GROUP; + gGameCommandErrorText = STR_NONE; *ebx = MONEY32_UNDEFINED; return; } @@ -2221,6 +2234,7 @@ void game_command_kick_player(int *eax, int *ebx, int *ecx, int *edx, int *esi, NetworkPlayer* player = gNetwork.GetPlayerByID(playerid); if (player && player->flags & NETWORK_PLAYER_FLAG_ISSERVER) { gGameCommandErrorTitle = STR_CANT_KICK_THE_HOST; + gGameCommandErrorText = STR_NONE; *ebx = MONEY32_UNDEFINED; return; }