From 5f7c81083e85a2cd38c0f576265251af941d5cad Mon Sep 17 00:00:00 2001 From: zsilencer Date: Sat, 23 Jan 2016 13:19:17 -0700 Subject: [PATCH] add separate Clear Landscape action and fix a bug --- data/language/english_uk.txt | 1 + src/localisation/string_ids.h | 1 + src/network/network.cpp | 11 ++++++----- src/network/network.h | 3 ++- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/data/language/english_uk.txt b/data/language/english_uk.txt index 1f430c7ef7..8ba52fcce9 100644 --- a/data/language/english_uk.txt +++ b/data/language/english_uk.txt @@ -4001,6 +4001,7 @@ STR_5659 :Kick Player STR_5660 :Modify Groups STR_5661 :Set Player Group STR_5662 :N/A +STR_5663 :Clear Landscape 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 95e8a2ffde..c8b684f65e 100644 --- a/src/localisation/string_ids.h +++ b/src/localisation/string_ids.h @@ -2289,6 +2289,7 @@ enum { STR_ACTION_MODIFY_GROUPS = 5660, STR_ACTION_SET_PLAYER_GROUP = 5661, STR_ACTION_NA = 5662, + STR_ACTION_CLEAR_LANDSCAPE = 5663, STR_LAST_ACTION = 5704, STR_CANT_SET_TO_THIS_GROUP = 5705, diff --git a/src/network/network.cpp b/src/network/network.cpp index 24d732f079..a3d7243611 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -579,9 +579,9 @@ bool Network::Init() std::unique_ptr user(new NetworkGroup()); // change to make_unique in c++14 user->SetName("User"); user->actions_allowed.fill(0xFF); - user->ToggleActionPermission(14); // Kick Player - user->ToggleActionPermission(15); // Modify Groups - user->ToggleActionPermission(16); // Set Player Group + user->ToggleActionPermission(15); // Kick Player + user->ToggleActionPermission(16); // Modify Groups + user->ToggleActionPermission(17); // Set Player Group user->id = 2; group_list.push_back(std::move(user)); SetDefaultGroup(1); @@ -1432,11 +1432,12 @@ void Network::ProcessGameCommandQueue() game_command_callback = game_command_callback_get_callback(gc.callback); } game_command_playerid = gc.playerid; - money32 cost = game_do_command_p(gc.esi, (int*)&gc.eax, (int*)&gc.ebx, (int*)&gc.ecx, (int*)&gc.edx, (int*)&gc.esi, (int*)&gc.edi, (int*)&gc.ebp); + int command = gc.esi; + money32 cost = game_do_command_p(command, (int*)&gc.eax, (int*)&gc.ebx, (int*)&gc.ecx, (int*)&gc.edx, (int*)&gc.esi, (int*)&gc.edi, (int*)&gc.ebp); if (cost != MONEY32_UNDEFINED) { NetworkPlayer* player = GetPlayerByID(gc.playerid); if (player) { - player->last_action = gNetworkActions.FindCommand(gc.esi); + player->last_action = gNetworkActions.FindCommand(command); player->last_action_time = SDL_GetTicks(); player->AddMoneySpent(cost); } diff --git a/src/network/network.h b/src/network/network.h index 40dd9bea94..55f2188325 100644 --- a/src/network/network.h +++ b/src/network/network.h @@ -183,8 +183,9 @@ public: {STR_ACTION_REMOVE_RIDE, {GAME_COMMAND_DEMOLISH_RIDE}}, {STR_ACTION_BUILD_RIDE, {GAME_COMMAND_PLACE_TRACK, GAME_COMMAND_REMOVE_TRACK, GAME_COMMAND_SET_MAZE_TRACK, GAME_COMMAND_PLACE_TRACK_DESIGN, GAME_COMMAND_PLACE_MAZE_DESIGN, GAME_COMMAND_PLACE_RIDE_ENTRANCE_OR_EXIT, GAME_COMMAND_REMOVE_RIDE_ENTRANCE_OR_EXIT}}, {STR_ACTION_RIDE_PROPERTIES, {GAME_COMMAND_SET_RIDE_NAME, GAME_COMMAND_SET_RIDE_APPEARANCE, GAME_COMMAND_SET_RIDE_STATUS, GAME_COMMAND_SET_RIDE_VEHICLES, GAME_COMMAND_SET_RIDE_SETTING, GAME_COMMAND_SET_RIDE_PRICE, GAME_COMMAND_SET_BRAKES_SPEED}}, - {STR_ACTION_SCENERY, {GAME_COMMAND_REMOVE_SCENERY, GAME_COMMAND_PLACE_SCENERY, GAME_COMMAND_SET_BRAKES_SPEED, GAME_COMMAND_REMOVE_FENCE, GAME_COMMAND_PLACE_FENCE, GAME_COMMAND_REMOVE_LARGE_SCENERY, GAME_COMMAND_PLACE_LARGE_SCENERY, GAME_COMMAND_PLACE_BANNER, GAME_COMMAND_REMOVE_BANNER, GAME_COMMAND_SET_SCENERY_COLOUR, GAME_COMMAND_SET_FENCE_COLOUR, GAME_COMMAND_SET_LARGE_SCENERY_COLOUR, GAME_COMMAND_SET_BANNER_COLOUR, GAME_COMMAND_CLEAR_SCENERY, GAME_COMMAND_SET_BANNER_NAME, GAME_COMMAND_SET_SIGN_NAME, GAME_COMMAND_SET_BANNER_STYLE, GAME_COMMAND_SET_SIGN_STYLE}}, + {STR_ACTION_SCENERY, {GAME_COMMAND_REMOVE_SCENERY, GAME_COMMAND_PLACE_SCENERY, GAME_COMMAND_SET_BRAKES_SPEED, GAME_COMMAND_REMOVE_FENCE, GAME_COMMAND_PLACE_FENCE, GAME_COMMAND_REMOVE_LARGE_SCENERY, GAME_COMMAND_PLACE_LARGE_SCENERY, GAME_COMMAND_PLACE_BANNER, GAME_COMMAND_REMOVE_BANNER, GAME_COMMAND_SET_SCENERY_COLOUR, GAME_COMMAND_SET_FENCE_COLOUR, GAME_COMMAND_SET_LARGE_SCENERY_COLOUR, GAME_COMMAND_SET_BANNER_COLOUR, GAME_COMMAND_SET_BANNER_NAME, GAME_COMMAND_SET_SIGN_NAME, GAME_COMMAND_SET_BANNER_STYLE, GAME_COMMAND_SET_SIGN_STYLE}}, {STR_ACTION_PATH, {GAME_COMMAND_PLACE_PATH, GAME_COMMAND_PLACE_PATH_FROM_TRACK, GAME_COMMAND_REMOVE_PATH}}, + {STR_ACTION_CLEAR_LANDSCAPE, {GAME_COMMAND_CLEAR_SCENERY}}, {STR_ACTION_GUEST, {GAME_COMMAND_SET_PEEP_NAME}}, {STR_ACTION_STAFF, {GAME_COMMAND_HIRE_NEW_STAFF_MEMBER, GAME_COMMAND_SET_STAFF_PATROL, GAME_COMMAND_FIRE_STAFF_MEMBER, GAME_COMMAND_SET_STAFF_ORDER, GAME_COMMAND_SET_STAFF_COLOUR}}, {STR_ACTION_PARK_PROPERTIES, {GAME_COMMAND_SET_PARK_NAME, GAME_COMMAND_SET_PARK_OPEN, GAME_COMMAND_SET_PARK_ENTRANCE_FEE, GAME_COMMAND_SET_LAND_OWNERSHIP, GAME_COMMAND_BUY_LAND_RIGHTS, GAME_COMMAND_PLACE_PARK_ENTRANCE, GAME_COMMAND_REMOVE_PARK_ENTRANCE}},