From 2144d9e7870e5a88570711d3f88431fe097184f1 Mon Sep 17 00:00:00 2001 From: Runelaenen Date: Fri, 15 May 2015 16:49:46 +0200 Subject: [PATCH 1/3] Cheat fix all rides --- data/language/english_uk.txt | 1 + data/language/english_us.txt | 1 + src/windows/cheats.c | 13 +++++++++---- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/data/language/english_uk.txt b/data/language/english_uk.txt index 1da3f3d858..289b456227 100644 --- a/data/language/english_uk.txt +++ b/data/language/english_uk.txt @@ -3465,3 +3465,4 @@ STR_5128 :Selection size STR_5129 :Enter selection size between {COMMA16} and {COMMA16} STR_5130 :Map size STR_5131 :Enter map size between {COMMA16} and {COMMA16} +STR_5132 :Fix all rides diff --git a/data/language/english_us.txt b/data/language/english_us.txt index fadb3bbd7c..c530a69d27 100644 --- a/data/language/english_us.txt +++ b/data/language/english_us.txt @@ -3468,3 +3468,4 @@ STR_5128 :Selection size STR_5129 :Enter selection size between {COMMA16} and {COMMA16} STR_5130 :Map size STR_5131 :Enter map size between {COMMA16} and {COMMA16} +STR_5132 :Fix all rides \ No newline at end of file diff --git a/src/windows/cheats.c b/src/windows/cheats.c index 1c8a1a2abe..1c407b86eb 100644 --- a/src/windows/cheats.c +++ b/src/windows/cheats.c @@ -72,7 +72,8 @@ enum WINDOW_CHEATS_WIDGET_IDX { WIDX_WIN_SCENARIO, WIDX_RENEW_RIDES = 8, WIDX_REMOVE_SIX_FLAGS, - WIDX_MAKE_DESTRUCTIBLE + WIDX_MAKE_DESTRUCTIBLE, + WIDX_FIX_ALL }; #pragma region MEASUREMENTS @@ -160,6 +161,7 @@ static rct_widget window_cheats_rides_widgets[] = { { WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(0), HPL(0), 5123, STR_NONE}, // Renew rides { WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(0), HPL(0), 5124, STR_NONE}, // Remove flags { WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(1), HPL(1), 5125, STR_NONE}, // Make destructable + { WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(1), HPL(1), 5132, STR_NONE }, // Fix all rides { WIDGETS_END }, }; @@ -318,7 +320,7 @@ static uint32 window_cheats_page_enabled_widgets[] = { (1 << WIDX_CLOSE) | (1 << WIDX_TAB_1) | (1 << WIDX_TAB_2) | (1 << WIDX_TAB_3) | (1 << WIDX_TAB_4) | (1 << WIDX_HIGH_MONEY) | (1 << WIDX_PARK_ENTRANCE_FEE), (1 << WIDX_CLOSE) | (1 << WIDX_TAB_1) | (1 << WIDX_TAB_2) | (1 << WIDX_TAB_3) | (1 << WIDX_TAB_4) | (1 << WIDX_HAPPY_GUESTS) | (1 << WIDX_TRAM_GUESTS), (1 << WIDX_CLOSE) | (1 << WIDX_TAB_1) | (1 << WIDX_TAB_2) | (1 << WIDX_TAB_3) | (1 << WIDX_TAB_4) | (1 << WIDX_FREEZE_CLIMATE) | (1 << WIDX_OPEN_CLOSE_PARK) | (1 << WIDX_DECREASE_GAME_SPEED) | (1 << WIDX_INCREASE_GAME_SPEED) | (1 << WIDX_ZERO_CLEARANCE) | (1 << WIDX_WEATHER_SUN) | (1 << WIDX_WEATHER_THUNDER) | (1 << WIDX_CLEAR_GRASS) | (1 << WIDX_MOWED_GRASS) | (1 << WIDX_WATER_PLANTS) | (1 << WIDX_FIX_VANDALISM) | (1 << WIDX_REMOVE_LITTER) | (1 << WIDX_WIN_SCENARIO), - (1 << WIDX_CLOSE) | (1 << WIDX_TAB_1) | (1 << WIDX_TAB_2) | (1 << WIDX_TAB_3) | (1 << WIDX_TAB_4) | (1 << WIDX_RENEW_RIDES) | (1 << WIDX_REMOVE_SIX_FLAGS) | (1 << WIDX_MAKE_DESTRUCTIBLE) + (1 << WIDX_CLOSE) | (1 << WIDX_TAB_1) | (1 << WIDX_TAB_2) | (1 << WIDX_TAB_3) | (1 << WIDX_TAB_4) | (1 << WIDX_RENEW_RIDES) | (1 << WIDX_REMOVE_SIX_FLAGS) | (1 << WIDX_MAKE_DESTRUCTIBLE) | (1 << WIDX_FIX_ALL) }; static void window_cheats_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w); @@ -398,11 +400,11 @@ static void cheat_fix_rides() int i; rct_ride *ride; - // TODO doesn't quite work, probably need to call the correct fix ride function FOR_ALL_RIDES(i, ride) { - if (ride->lifecycle_flags & (RIDE_LIFECYCLE_BREAKDOWN_PENDING | RIDE_LIFECYCLE_BROKEN_DOWN)) { + if (!ride->breakdown_reason){ ride->lifecycle_flags &= ~(RIDE_LIFECYCLE_BREAKDOWN_PENDING | RIDE_LIFECYCLE_BROKEN_DOWN); } + } } @@ -649,6 +651,9 @@ static void window_cheats_rides_mouseup() case WIDX_MAKE_DESTRUCTIBLE: cheat_make_destructible(); break; + case WIDX_FIX_ALL: + cheat_fix_rides(); + break; } } From 69c89db87ed13417e20e5a393fc08b75414a8994 Mon Sep 17 00:00:00 2001 From: Runelaenen Date: Fri, 15 May 2015 16:53:59 +0200 Subject: [PATCH 2/3] Working code Thanks to IntelOrca and Gymnasiast for the help :-) --- src/windows/cheats.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/windows/cheats.c b/src/windows/cheats.c index 1c407b86eb..1dd89339a8 100644 --- a/src/windows/cheats.c +++ b/src/windows/cheats.c @@ -397,14 +397,23 @@ static void cheat_remove_litter() static void cheat_fix_rides() { - int i; + int rideIndex; rct_ride *ride; + rct_peep *mechanic; - FOR_ALL_RIDES(i, ride) { - if (!ride->breakdown_reason){ - ride->lifecycle_flags &= ~(RIDE_LIFECYCLE_BREAKDOWN_PENDING | RIDE_LIFECYCLE_BROKEN_DOWN); + FOR_ALL_RIDES(rideIndex, ride) + { + if ((ride->mechanic_status != RIDE_MECHANIC_STATUS_FIXING) && (ride->lifecycle_flags & (RIDE_LIFECYCLE_BREAKDOWN_PENDING | RIDE_LIFECYCLE_BROKEN_DOWN))) + { + mechanic = ride_get_assigned_mechanic(ride); + + if (mechanic != NULL){ + remove_peep_from_ride(mechanic); + } + + RCT2_CALLPROC_X(0x006B7481, 0, 0, 0, rideIndex, 0, 0, 0); + ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_MAIN | RIDE_INVALIDATE_RIDE_LIST; } - } } From fc7cae9e57da3f1a94f4a44559db72a798e5e49f Mon Sep 17 00:00:00 2001 From: Runelaenen Date: Fri, 15 May 2015 18:53:31 +0200 Subject: [PATCH 3/3] Updated tab and language Removed the string from US. Changed tab to 4 spaces in UK. I'll add it to the /OpenRCT2/Language repo. --- data/language/english_uk.txt | 2 +- data/language/english_us.txt | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/data/language/english_uk.txt b/data/language/english_uk.txt index 289b456227..f8d1c578f1 100644 --- a/data/language/english_uk.txt +++ b/data/language/english_uk.txt @@ -3465,4 +3465,4 @@ STR_5128 :Selection size STR_5129 :Enter selection size between {COMMA16} and {COMMA16} STR_5130 :Map size STR_5131 :Enter map size between {COMMA16} and {COMMA16} -STR_5132 :Fix all rides +STR_5132 :Fix all rides diff --git a/data/language/english_us.txt b/data/language/english_us.txt index c530a69d27..538a701065 100644 --- a/data/language/english_us.txt +++ b/data/language/english_us.txt @@ -3467,5 +3467,4 @@ STR_5127 :{SMALLFONT}{BLACK}Disable land elevation STR_5128 :Selection size STR_5129 :Enter selection size between {COMMA16} and {COMMA16} STR_5130 :Map size -STR_5131 :Enter map size between {COMMA16} and {COMMA16} -STR_5132 :Fix all rides \ No newline at end of file +STR_5131 :Enter map size between {COMMA16} and {COMMA16} \ No newline at end of file