Merge pull request #1067 from runelaenen/cheat-create-ride

[Cheat] Fix all rides
This commit is contained in:
Ted John 2015-05-15 21:59:25 +01:00
commit b4683351f9
3 changed files with 23 additions and 8 deletions

View File

@ -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

View File

@ -3467,4 +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_5131 :Enter map size between {COMMA16} and {COMMA16}

View File

@ -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);
@ -395,13 +397,22 @@ static void cheat_remove_litter()
static void cheat_fix_rides()
{
int i;
int rideIndex;
rct_ride *ride;
rct_peep *mechanic;
// 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)) {
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;
}
}
}
@ -649,6 +660,9 @@ static void window_cheats_rides_mouseup()
case WIDX_MAKE_DESTRUCTIBLE:
cheat_make_destructible();
break;
case WIDX_FIX_ALL:
cheat_fix_rides();
break;
}
}