mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-16 03:23:15 +01:00
Allow entertainer costume to be given to game command
This commit is contained in:
@@ -54,7 +54,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 "30"
|
||||
#define NETWORK_STREAM_VERSION "31"
|
||||
#define NETWORK_STREAM_ID OPENRCT2_VERSION "-" NETWORK_STREAM_VERSION
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -163,12 +163,18 @@ static money32 staff_hire_new_staff_member(uint8 staff_type, uint8 flags, sint16
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
if (staff_type != STAFF_TYPE_HANDYMAN &&
|
||||
staff_type != STAFF_TYPE_MECHANIC &&
|
||||
staff_type != STAFF_TYPE_SECURITY &&
|
||||
staff_type != STAFF_TYPE_ENTERTAINER)
|
||||
// Staff type matches STAFF_TYPE enum, but ENTERTAINER onwards will match
|
||||
// the ENTERTAINER_COSTUME enum
|
||||
uint8 entertainerType = ENTERTAINER_COSTUME_PANDA;
|
||||
if (staff_type >= STAFF_TYPE_ENTERTAINER)
|
||||
{
|
||||
return MONEY32_UNDEFINED;
|
||||
entertainerType = staff_type - STAFF_TYPE_ENTERTAINER;
|
||||
if (entertainerType >= ENTERTAINER_COSTUME_COUNT)
|
||||
{
|
||||
// Invalid entertainer costume
|
||||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
staff_type = STAFF_TYPE_ENTERTAINER;
|
||||
}
|
||||
|
||||
sint32 i;
|
||||
@@ -264,6 +270,10 @@ static money32 staff_hire_new_staff_member(uint8 staff_type, uint8 flags, sint16
|
||||
};
|
||||
|
||||
uint8 sprite_type = spriteTypes[staff_type];
|
||||
if (staff_type == STAFF_TYPE_ENTERTAINER)
|
||||
{
|
||||
sprite_type = PEEP_SPRITE_TYPE_ENTERTAINER_PANDA + entertainerType;
|
||||
}
|
||||
newPeep->name_string_idx = staffNames[staff_type];
|
||||
newPeep->sprite_type = sprite_type;
|
||||
|
||||
|
||||
@@ -132,6 +132,8 @@ static uint16 _window_staff_list_selected_type_count = 0;
|
||||
static sint32 _windowStaffListHighlightedIndex;
|
||||
static sint32 _windowStaffListSelectedTab;
|
||||
|
||||
static uint8 window_staff_list_get_random_entertainer_costume();
|
||||
|
||||
typedef struct staff_naming_convention
|
||||
{
|
||||
rct_string_id plural;
|
||||
@@ -217,8 +219,16 @@ static void window_staff_list_mouseup(rct_window *w, sint32 widgetIndex)
|
||||
window_close(w);
|
||||
break;
|
||||
case WIDX_STAFF_LIST_HIRE_BUTTON:
|
||||
{
|
||||
int staffType = _windowStaffListSelectedTab;
|
||||
if (staffType == STAFF_TYPE_ENTERTAINER)
|
||||
{
|
||||
uint8 costume = window_staff_list_get_random_entertainer_costume();
|
||||
staffType += costume;
|
||||
}
|
||||
hire_new_staff_member(_windowStaffListSelectedTab);
|
||||
break;
|
||||
}
|
||||
case WIDX_STAFF_LIST_SHOW_PATROL_AREA_BUTTON:
|
||||
if (!tool_set(w, WIDX_STAFF_LIST_SHOW_PATROL_AREA_BUTTON, 12)) {
|
||||
show_gridlines();
|
||||
@@ -693,3 +703,8 @@ void window_staff_list_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, sint32
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static uint8 window_staff_list_get_random_entertainer_costume()
|
||||
{
|
||||
return ENTERTAINER_COSTUME_PANDA;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user