From 7cf64d0bfe202610efda364a63fdb38b4ecd35ee Mon Sep 17 00:00:00 2001 From: siomy11 Date: Sun, 16 Apr 2017 13:38:02 -0700 Subject: [PATCH] Display "No mechanics are hired!" instead of "Calling mechanic..." when no mechanics are hired (#5368) --- data/language/en-GB.txt | 1 + src/openrct2/localisation/string_ids.h | 2 ++ src/openrct2/windows/ride.c | 16 +++++++++++++--- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/data/language/en-GB.txt b/data/language/en-GB.txt index 711cd27a14..145c96bc25 100644 --- a/data/language/en-GB.txt +++ b/data/language/en-GB.txt @@ -4349,6 +4349,7 @@ STR_6037 :Please select a valid RCT1 directory STR_6038 :{SMALLFONT}{BLACK}If you have RCT1 installed, set this option to its directory to load scenarios, music, etc. STR_6039 :{SMALLFONT}{BLACK}Quick demolish ride STR_6040 :Edit Scenario Options +STR_6041 :{BLACK}No mechanics are hired! ############# # Scenarios # diff --git a/src/openrct2/localisation/string_ids.h b/src/openrct2/localisation/string_ids.h index 4fa0fe7e3b..b796c768a1 100644 --- a/src/openrct2/localisation/string_ids.h +++ b/src/openrct2/localisation/string_ids.h @@ -3697,6 +3697,8 @@ enum { STR_QUICK_DEMOLISH_RIDE = 6039, STR_ACTION_EDIT_SCENARIO_OPTIONS = 6040, + + STR_NO_MECHANICS_ARE_HIRED_MESSAGE = 6041, // Have to include resource strings (from scenarios and objects) for the time being now that language is partially working STR_COUNT = 32768 diff --git a/src/openrct2/windows/ride.c b/src/openrct2/windows/ride.c index 6e66770ec9..67fee1782d 100644 --- a/src/openrct2/windows/ride.c +++ b/src/openrct2/windows/ride.c @@ -4009,15 +4009,25 @@ static void window_ride_maintenance_paint(rct_window *w, rct_drawpixelinfo *dpi) // Mechanic status if (ride->lifecycle_flags & RIDE_LIFECYCLE_BROKEN_DOWN) { + rct_peep *peep; + uint16 spriteIndex; + switch (ride->mechanic_status) { case RIDE_MECHANIC_STATUS_CALLING: - stringId = STR_CALLING_MECHANIC; + stringId = STR_NO_MECHANICS_ARE_HIRED_MESSAGE; + + FOR_ALL_STAFF(spriteIndex, peep) { + if (peep->staff_type == STAFF_TYPE_MECHANIC) { + stringId = STR_CALLING_MECHANIC; + break; + } + } break; case RIDE_MECHANIC_STATUS_HEADING: stringId = STR_MEHCANIC_IS_HEADING_FOR_THE_RIDE; break; case RIDE_MECHANIC_STATUS_FIXING: - case 4: + case RIDE_MECHANIC_STATUS_HAS_FIXED_STATION_BRAKES: stringId = STR_MEHCANIC_IS_FIXING_THE_RIDE; break; default: @@ -4026,7 +4036,7 @@ static void window_ride_maintenance_paint(rct_window *w, rct_drawpixelinfo *dpi) } if (stringId != 0) { - if (stringId == STR_CALLING_MECHANIC) { + if (stringId == STR_CALLING_MECHANIC || stringId == STR_NO_MECHANICS_ARE_HIRED_MESSAGE) { gfx_draw_string_left_wrapped(dpi, NULL, x + 4, y, 280, stringId, COLOUR_BLACK); } else { rct_peep *mechanicSprite = &(get_sprite(ride->mechanic)->peep);