From 339f0aba10c2e111ab4bcee3d4527e38aea12c3a Mon Sep 17 00:00:00 2001 From: Nubbie Date: Sat, 23 Apr 2016 06:35:57 +0200 Subject: [PATCH] Make renaming staff use staff permissions, fixes #3243 --- src/game.c | 3 ++- src/game.h | 3 ++- src/network/network.h | 4 ++-- src/peep/peep.c | 4 ++++ src/peep/peep.h | 1 + src/windows/staff.c | 6 +++--- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/game.c b/src/game.c index d9e6339cdc..03456760cc 100644 --- a/src/game.c +++ b/src/game.c @@ -1214,7 +1214,7 @@ void game_load_or_quit_no_save_prompt() } } -GAME_COMMAND_POINTER* new_game_command_table[66] = { +GAME_COMMAND_POINTER* new_game_command_table[67] = { game_command_set_ride_appearance, game_command_set_land_height, game_pause_toggle, @@ -1238,6 +1238,7 @@ GAME_COMMAND_POINTER* new_game_command_table[66] = { game_command_change_surface_style, game_command_set_ride_price, game_command_set_peep_name, + game_command_set_staff_name, game_command_raise_land, game_command_lower_land, game_command_smooth_land, diff --git a/src/game.h b/src/game.h index ac07a527b5..cb513ec24e 100644 --- a/src/game.h +++ b/src/game.h @@ -49,6 +49,7 @@ enum GAME_COMMAND { GAME_COMMAND_CHANGE_SURFACE_STYLE, GAME_COMMAND_SET_RIDE_PRICE, GAME_COMMAND_SET_PEEP_NAME, + GAME_COMMAND_SET_STAFF_NAME, GAME_COMMAND_RAISE_LAND, GAME_COMMAND_LOWER_LAND, GAME_COMMAND_EDIT_LAND_SMOOTH, @@ -123,7 +124,7 @@ extern int game_command_playerid; extern rct_string_id gGameCommandErrorTitle; extern rct_string_id gGameCommandErrorText; -extern GAME_COMMAND_POINTER* new_game_command_table[66]; +extern GAME_COMMAND_POINTER* new_game_command_table[67]; #define gCurrentTicks RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_TICKS, uint32) diff --git a/src/network/network.h b/src/network/network.h index 0314de1e71..75da09009b 100644 --- a/src/network/network.h +++ b/src/network/network.h @@ -68,7 +68,7 @@ extern "C" { // This define specifies which version of network stream current build uses. // It is used for making sure only compatible builds get connected, even within // single OpenRCT2 version. -#define NETWORK_STREAM_VERSION "6" +#define NETWORK_STREAM_VERSION "7" #define NETWORK_STREAM_ID OPENRCT2_VERSION "-" NETWORK_STREAM_VERSION #define NETWORK_DISCONNECT_REASON_BUFFER_SIZE 256 @@ -196,7 +196,7 @@ public: {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_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, GAME_COMMAND_SET_STAFF_NAME}}, {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}}, {STR_ACTION_PARK_FUNDING, {GAME_COMMAND_SET_CURRENT_LOAN, GAME_COMMAND_SET_RESEARCH_FUNDING, GAME_COMMAND_START_MARKETING_CAMPAIGN}}, {STR_ACTION_KICK_PLAYER, {GAME_COMMAND_KICK_PLAYER}}, diff --git a/src/peep/peep.c b/src/peep/peep.c index 8f01904ee1..20f5baedb6 100644 --- a/src/peep/peep.c +++ b/src/peep/peep.c @@ -10617,3 +10617,7 @@ void game_command_set_peep_name(int *eax, int *ebx, int *ecx, int *edx, int *esi (uint8*)edi ); } + +void game_command_set_staff_name(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp) { + game_command_set_peep_name(eax, ebx, ecx, edx, esi, edi, ebp); +} diff --git a/src/peep/peep.h b/src/peep/peep.h index 9e57028ef3..f0ef911306 100644 --- a/src/peep/peep.h +++ b/src/peep/peep.h @@ -650,6 +650,7 @@ void peep_update_name_sort(rct_peep *peep); void peep_update_names(bool realNames); void game_command_set_peep_name(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp); +void game_command_set_staff_name(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp); int peep_pathfind_choose_direction(sint16 x, sint16 y, uint8 z, rct_peep *peep); diff --git a/src/windows/staff.c b/src/windows/staff.c index 8bfe67a2a5..4d57ce900f 100644 --- a/src/windows/staff.c +++ b/src/windows/staff.c @@ -1243,9 +1243,9 @@ void window_staff_overview_text_input(rct_window *w, int widgetIndex, char *text return; gGameCommandErrorTitle = STR_CANT_NAME_STAFF_MEMBER; - game_do_command(1, GAME_COMMAND_FLAG_APPLY, w->number, *((int*)(text + 0)), GAME_COMMAND_SET_PEEP_NAME, *((int*)(text + 8)), *((int*)(text + 4))); - game_do_command(2, GAME_COMMAND_FLAG_APPLY, w->number, *((int*)(text + 12)), GAME_COMMAND_SET_PEEP_NAME, *((int*)(text + 20)), *((int*)(text + 16))); - game_do_command(0, GAME_COMMAND_FLAG_APPLY, w->number, *((int*)(text + 24)), GAME_COMMAND_SET_PEEP_NAME, *((int*)(text + 32)), *((int*)(text + 28))); + game_do_command(1, GAME_COMMAND_FLAG_APPLY, w->number, *((int*)(text + 0)), GAME_COMMAND_SET_STAFF_NAME, *((int*)(text + 8)), *((int*)(text + 4))); + game_do_command(2, GAME_COMMAND_FLAG_APPLY, w->number, *((int*)(text + 12)), GAME_COMMAND_SET_STAFF_NAME, *((int*)(text + 20)), *((int*)(text + 16))); + game_do_command(0, GAME_COMMAND_FLAG_APPLY, w->number, *((int*)(text + 24)), GAME_COMMAND_SET_STAFF_NAME, *((int*)(text + 32)), *((int*)(text + 28))); } /**