Check if peep is guest or staff, refactor

This commit is contained in:
Gymnasiast 2016-04-28 20:09:05 +02:00
parent 339f0aba10
commit f2a3c21beb
8 changed files with 38 additions and 14 deletions

View File

@ -1237,7 +1237,7 @@ GAME_COMMAND_POINTER* new_game_command_table[67] = {
game_command_remove_footpath,
game_command_change_surface_style,
game_command_set_ride_price,
game_command_set_peep_name,
game_command_set_guest_name,
game_command_set_staff_name,
game_command_raise_land,
game_command_lower_land,

View File

@ -48,7 +48,7 @@ enum GAME_COMMAND {
GAME_COMMAND_REMOVE_PATH,
GAME_COMMAND_CHANGE_SURFACE_STYLE,
GAME_COMMAND_SET_RIDE_PRICE,
GAME_COMMAND_SET_PEEP_NAME,
GAME_COMMAND_SET_GUEST_NAME,
GAME_COMMAND_SET_STAFF_NAME,
GAME_COMMAND_RAISE_LAND,
GAME_COMMAND_LOWER_LAND,

View File

@ -195,7 +195,7 @@ public:
{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_GUEST, {GAME_COMMAND_SET_GUEST_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, 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}},

View File

@ -10607,17 +10607,21 @@ money32 set_peep_name(int flags, int state, uint16 sprite_index, uint8* text_1,
*
* rct2: 0x00698D6C
*/
void game_command_set_peep_name(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp) {
void game_command_set_guest_name(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp) {
uint16 sprite_index = *ecx & 0xFFFF;
rct_peep *peep = GET_PEEP(sprite_index);
if (peep->type != PEEP_TYPE_GUEST) {
*ebx = MONEY32_UNDEFINED;
return;
}
*ebx = set_peep_name(
*ebx & 0xFF,
*eax & 0xFFFF,
*ecx & 0xFFFF,
sprite_index,
(uint8*)edx,
(uint8*)ebp,
(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);
}

View File

@ -649,8 +649,8 @@ void sub_693BE5(rct_peep* peep, uint8 al);
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);
money32 set_peep_name(int flags, int state, uint16 sprite_index, uint8* text_1, uint8* text_2, uint8* text_3);
void game_command_set_guest_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);

View File

@ -1212,3 +1212,22 @@ int staff_path_finding(rct_peep* peep) {
return 0;
}
}
void game_command_set_staff_name(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp) {
uint16 sprite_index = *ecx & 0xFFFF;
rct_peep *peep = GET_PEEP(sprite_index);
if (peep->type != PEEP_TYPE_STAFF) {
*ebx = MONEY32_UNDEFINED;
return;
}
*ebx = set_peep_name(
*ebx & 0xFF,
*eax & 0xFFFF,
sprite_index,
(uint8*)edx,
(uint8*)ebp,
(uint8*)edi
);
}

View File

@ -62,6 +62,7 @@ void game_command_hire_new_staff_member(int *eax, int *ebx, int *ecx, int *edx,
void game_command_set_staff_order(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp);
void game_command_set_staff_patrol(int *eax, int *ebx, int *ecx, int *edx, int *esi, int *edi, int *ebp);
void game_command_fire_staff_member(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);
void staff_reset_modes();
void update_staff_colour(uint8 staffType, uint16 colour);

View File

@ -1159,9 +1159,9 @@ void window_guest_overview_text_input(rct_window *w, int widgetIndex, char *text
return;
gGameCommandErrorTitle = STR_CANT_NAME_GUEST;
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_GUEST_NAME, *((int*)(text + 8)), *((int*)(text + 4)));
game_do_command(2, GAME_COMMAND_FLAG_APPLY, w->number, *((int*)(text + 12)), GAME_COMMAND_SET_GUEST_NAME, *((int*)(text + 20)), *((int*)(text + 16)));
game_do_command(0, GAME_COMMAND_FLAG_APPLY, w->number, *((int*)(text + 24)), GAME_COMMAND_SET_GUEST_NAME, *((int*)(text + 32)), *((int*)(text + 28)));
}
/**