mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-24 00:03:11 +01:00
Add cheat to edit park parameters/scenario options in-game
This commit is contained in:
@@ -2684,8 +2684,8 @@ STR_2678 :???
|
||||
STR_2679 :???
|
||||
STR_2680 :All research complete
|
||||
STR_2681 :{MEDIUMFONT}{BLACK}Increases your money by 5,000
|
||||
STR_2682 :{MEDIUMFONT}{BLACK}Toggle between Free and Paid Entry
|
||||
STR_2683 :{MEDIUMFONT}{BLACK}Increases every peeps happiness to max
|
||||
STR_2682 :<not used anymore>
|
||||
STR_2683 :<not used anymore>
|
||||
STR_2684 :{SMALLFONT}{BLACK}Large group of peeps arrive
|
||||
STR_2685 :Simplex Noise Parameters
|
||||
STR_2686 :{WINDOW_COLOUR_2}Low:
|
||||
@@ -2764,10 +2764,10 @@ STR_2757 :Force Sun
|
||||
STR_2758 :Force Thunder
|
||||
STR_2759 :Zero Clearance
|
||||
STR_2760 :+5K Money
|
||||
STR_2761 :Pay For Entrance
|
||||
STR_2762 :Pay For Rides
|
||||
STR_2761 :<not used anymore>
|
||||
STR_2762 :<not used anymore>
|
||||
STR_2763 :???
|
||||
STR_2764 :Happy Guests
|
||||
STR_2764 :<not used anymore>
|
||||
STR_2765 :Large Tram
|
||||
STR_2766 :Win scenario
|
||||
STR_2767 :Freeze Climate
|
||||
@@ -3587,8 +3587,8 @@ STR_5250 :Title Exit Button
|
||||
STR_5251 :Title Options Button
|
||||
STR_5252 :Title Scenario Selection
|
||||
STR_5253 :Park Information
|
||||
STR_5254 :Add nausea
|
||||
STR_5255 :{MEDIUMFONT}{BLACK}All peeps become nauseous
|
||||
STR_5254 :<not used anymore>
|
||||
STR_5255 :<not used anymore>
|
||||
STR_5256 :Create a new theme to make changes to
|
||||
STR_5257 :{SMALLFONT}{BLACK}Create a new theme based on the current one
|
||||
STR_5258 :{SMALLFONT}{BLACK}Delete the current theme
|
||||
@@ -3702,3 +3702,5 @@ STR_5365 :{BLACK}Staff speed:
|
||||
STR_5366 :Normal
|
||||
STR_5367 :Fast
|
||||
STR_5368 :Reset crash status
|
||||
STR_5369 :Park parameters...
|
||||
STR_5370 :{SMALLFONT}{BLACK}Click this button to modify park{NEWLINE}parameters like restrictions,{NEWLINE}guest generation and money.
|
||||
|
||||
@@ -817,6 +817,8 @@ static int cc_open(const char **argv, int argc) {
|
||||
window_editor_object_selection_open();
|
||||
} else if (strcmp(argv[0], "inventions_list") == 0) {
|
||||
window_editor_inventions_list_open();
|
||||
} else if (strcmp(argv[0], "scenario_options") == 0) {
|
||||
window_editor_scenario_options_open();
|
||||
} else if (strcmp(argv[0], "options") == 0) {
|
||||
window_options_open();
|
||||
} else if (strcmp(argv[0], "themes") == 0) {
|
||||
@@ -999,4 +1001,4 @@ void console_execute_silent(const char *src)
|
||||
char output[] = { FORMAT_RED, "Unknown command. Type help to list available commands." };
|
||||
console_writeline(output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -999,14 +999,10 @@ enum {
|
||||
|
||||
// Money
|
||||
STR_CHEAT_5K_MONEY = 2760,
|
||||
STR_CHEAT_PAY_ENTRANCE = 2761,
|
||||
STR_CHEAT_CLEAR_LOAN = 5302,
|
||||
STR_CHEAT_PAY_RIDES = 2762,
|
||||
|
||||
// Guests
|
||||
//STR_CHEAT_HAPPY_GUESTS = 2764,
|
||||
STR_CHEAT_LARGE_TRAM_GUESTS = 2765,
|
||||
//STR_CHEAT_NAUSEA = 5254,
|
||||
STR_CHEAT_EXPLODE = 5285,
|
||||
STR_CHEAT_REMOVE_ALL_GUESTS = 5359,
|
||||
STR_CHEAT_GUEST_HAPPINESS = 5352,
|
||||
@@ -1037,6 +1033,7 @@ enum {
|
||||
STR_CHEAT_WIN_SCENARIO = 2766,
|
||||
STR_CHEAT_UNLOCK_PRICES = 5157,
|
||||
STR_CHEAT_BUILD_IN_PAUSE_MODE = 5303,
|
||||
STR_CHEAT_PARK_PARAMETERS = 5369,
|
||||
|
||||
// Rides
|
||||
STR_CHEAT_RENEW_RIDES = 5123,
|
||||
@@ -1049,13 +1046,11 @@ enum {
|
||||
|
||||
// Cheat tips
|
||||
STR_CHEAT_TIP_5K_MONEY = 2681,
|
||||
STR_CHEAT_TIP_PAY_ENTRY = 2682,
|
||||
STR_CHEAT_TIP_CLEAR_LOAN = 5301,
|
||||
//STR_CHEAT_TIP_HAPPY_GUESTS = 2683,
|
||||
STR_CHEAT_TIP_LARGE_TRAM_GUESTS = 2684,
|
||||
//STR_CHEAT_TIP_NAUSEA = 5255,
|
||||
STR_CHEAT_TIP_EXPLODE = 5286,
|
||||
STR_CHEAT_TIP_REMOVE_ALL_GUESTS = 5360,
|
||||
STR_CHEAT_TIP_PARK_PARAMETERS = 5370,
|
||||
|
||||
// Cheat tab tips
|
||||
STR_FINANCIAL_CHEATS_TIP = 5178,
|
||||
|
||||
@@ -57,7 +57,6 @@ enum WINDOW_CHEATS_WIDGET_IDX {
|
||||
WIDX_TAB_3,
|
||||
WIDX_TAB_4,
|
||||
WIDX_HIGH_MONEY,
|
||||
WIDX_PARK_ENTRANCE_FEE,
|
||||
WIDX_CLEAR_LOAN,
|
||||
WIDX_GUEST_HAPPINESS_MAX = 8, //Same as HIGH_MONEY as it is also the 8th widget but on a different page
|
||||
WIDX_GUEST_HAPPINESS_MIN,
|
||||
@@ -96,6 +95,7 @@ enum WINDOW_CHEATS_WIDGET_IDX {
|
||||
WIDX_SANDBOX_MODE,
|
||||
WIDX_FAST_STAFF,
|
||||
WIDX_NORMAL_STAFF,
|
||||
WIDX_PARK_PARAMETERS,
|
||||
WIDX_RENEW_RIDES = 8,
|
||||
WIDX_REMOVE_SIX_FLAGS,
|
||||
WIDX_MAKE_DESTRUCTIBLE,
|
||||
@@ -164,7 +164,6 @@ enum {
|
||||
static rct_widget window_cheats_money_widgets[] = {
|
||||
MAIN_CHEATS_WIDGETS,
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(1), HPL(1), STR_CHEAT_5K_MONEY, STR_NONE}, // high money
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(3), HPL(3), STR_CHEAT_PAY_ENTRANCE, STR_NONE}, // Park Entrance Fee Toggle
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(5), HPL(5), STR_CHEAT_CLEAR_LOAN, STR_NONE }, // Clear loan
|
||||
{ WIDGETS_END },
|
||||
};
|
||||
@@ -214,6 +213,7 @@ static rct_widget window_cheats_misc_widgets[] = {
|
||||
{ WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(5), HPL(5), STR_CHEAT_SANDBOX_MODE, STR_CHEAT_SANDBOX_MODE_TIP}, // Sandbox mode (edit land ownership in-game)
|
||||
{ WWT_CLOSEBOX, 1, MAX_BTN_LEFT, MAX_BTN_RIGHT, YPL(6), HPL(6), STR_FAST, STR_NONE }, // fast staff
|
||||
{ WWT_CLOSEBOX, 1, MIN_BTN_LEFT, MIN_BTN_RIGHT, YPL(6), HPL(6), STR_NORMAL, STR_NONE }, // normal staff
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(7), HPL(7), STR_CHEAT_PARK_PARAMETERS, STR_CHEAT_TIP_PARK_PARAMETERS}, // Park parameters
|
||||
{ WIDGETS_END },
|
||||
};
|
||||
static rct_widget window_cheats_rides_widgets[] = {
|
||||
@@ -382,9 +382,9 @@ static void* window_cheats_page_events[] = {
|
||||
};
|
||||
|
||||
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_CLEAR_LOAN),
|
||||
(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_CLEAR_LOAN),
|
||||
(1 << WIDX_CLOSE) | (1 << WIDX_TAB_1) | (1 << WIDX_TAB_2) | (1 << WIDX_TAB_3) | (1 << WIDX_TAB_4) | (1 << WIDX_GUEST_HAPPINESS_MAX) | (1 << WIDX_GUEST_HAPPINESS_MIN) | (1 << WIDX_GUEST_ENERGY_MAX) | (1 << WIDX_GUEST_ENERGY_MIN) | (1 << WIDX_GUEST_HUNGER_MAX) | (1 << WIDX_GUEST_HUNGER_MIN) | (1 << WIDX_GUEST_THIRST_MAX) | (1 << WIDX_GUEST_THIRST_MIN) | (1 << WIDX_GUEST_NAUSEA_MAX) | (1 << WIDX_GUEST_NAUSEA_MIN) | (1 << WIDX_GUEST_NAUSEA_TOLERANCE_MAX) | (1 << WIDX_GUEST_NAUSEA_TOLERANCE_MIN) | (1 << WIDX_GUEST_BATHROOM_MAX) | (1 << WIDX_GUEST_BATHROOM_MIN) | (1 << WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1) | (1 << WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15) | (1 << WIDX_TRAM_GUESTS) | (1 << WIDX_REMOVE_ALL_GUESTS) | (1 << WIDX_EXPLODE_GUESTS) | (1 << WIDX_GIVE_GUESTS_PARK_MAPS) | (1 << WIDX_GIVE_GUESTS_BALLOONS) | (1 << WIDX_GIVE_GUESTS_UMBRELLAS),
|
||||
(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_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_UNLOCK_ALL_PRICES) | (1 << WIDX_SANDBOX_MODE) | (1 << WIDX_FAST_STAFF) | (1 << WIDX_NORMAL_STAFF),
|
||||
(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_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_UNLOCK_ALL_PRICES) | (1 << WIDX_SANDBOX_MODE) | (1 << WIDX_FAST_STAFF) | (1 << WIDX_NORMAL_STAFF) | (1 << WIDX_PARK_PARAMETERS),
|
||||
(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) | (1 << WIDX_FAST_LIFT_HILL) | (1 << WIDX_DISABLE_BRAKES_FAILURE) | (1 << WIDX_DISABLE_ALL_BREAKDOWNS) | (1 << WIDX_BUILD_IN_PAUSE_MODE) | (1 << WIDX_RESET_CRASH_STATUS)
|
||||
};
|
||||
|
||||
@@ -752,11 +752,6 @@ static void window_cheats_money_mouseup()
|
||||
case WIDX_CLEAR_LOAN:
|
||||
cheat_clear_loan();
|
||||
break;
|
||||
case WIDX_PARK_ENTRANCE_FEE:
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) ^= PARK_FLAGS_PARK_FREE_ENTRY;
|
||||
window_invalidate_by_class(WC_PARK_INFORMATION);
|
||||
window_invalidate_by_class(WC_RIDE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -920,6 +915,9 @@ static void window_cheats_misc_mouseup()
|
||||
case WIDX_NORMAL_STAFF:
|
||||
cheat_set_staff_speed(0x60);
|
||||
break;
|
||||
case WIDX_PARK_PARAMETERS:
|
||||
window_editor_scenario_options_open();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1001,10 +999,6 @@ static void window_cheats_invalidate()
|
||||
w->pressed_widgets = 0;
|
||||
|
||||
switch (w->page) {
|
||||
case WINDOW_CHEATS_PAGE_MONEY:
|
||||
w->widgets[WIDX_PARK_ENTRANCE_FEE].image = RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_PARK_FREE_ENTRY ?
|
||||
STR_CHEAT_PAY_ENTRANCE : STR_CHEAT_PAY_RIDES;
|
||||
break;
|
||||
case WINDOW_CHEATS_PAGE_MISC:
|
||||
w->widgets[WIDX_OPEN_CLOSE_PARK].image = RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) & PARK_FLAGS_PARK_OPEN ?
|
||||
STR_CHEAT_CLOSE_PARK : STR_CHEAT_OPEN_PARK;
|
||||
@@ -1040,7 +1034,6 @@ static void window_cheats_paint()
|
||||
|
||||
if (w->page == WINDOW_CHEATS_PAGE_MONEY){
|
||||
gfx_draw_string_left(dpi, STR_CHEAT_TIP_5K_MONEY, NULL, 0, w->x + XPL(0) + TXTO, w->y + YPL(0) + TXTO);
|
||||
gfx_draw_string_left(dpi, STR_CHEAT_TIP_PAY_ENTRY, NULL, 0, w->x + XPL(0) + TXTO, w->y + YPL(2) + TXTO);
|
||||
gfx_draw_string_left(dpi, STR_CHEAT_TIP_CLEAR_LOAN, NULL, 0, w->x + XPL(0) + TXTO, w->y + YPL(4) + TXTO);
|
||||
}
|
||||
else if(w->page == WINDOW_CHEATS_PAGE_MISC){
|
||||
|
||||
@@ -451,7 +451,18 @@ static void window_editor_scenario_options_financial_mouseup()
|
||||
window_editor_scenario_options_set_page(w, widgetIndex - WIDX_TAB_1);
|
||||
break;
|
||||
case WIDX_NO_MONEY:
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) ^= PARK_FLAGS_NO_MONEY_SCENARIO;
|
||||
if(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_SCENARIO_EDITOR) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) ^= PARK_FLAGS_NO_MONEY_SCENARIO;
|
||||
}
|
||||
else {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) ^= PARK_FLAGS_NO_MONEY;
|
||||
// Invalidate all windows that have anything to do with finance
|
||||
window_invalidate_by_class(WC_RIDE);
|
||||
window_invalidate_by_class(WC_PEEP);
|
||||
window_invalidate_by_class(WC_PARK_INFORMATION);
|
||||
window_invalidate_by_class(WC_FINANCES);
|
||||
window_invalidate_by_class(WC_BOTTOM_TOOLBAR);
|
||||
}
|
||||
window_invalidate(w);
|
||||
break;
|
||||
case WIDX_FORBID_MARKETING:
|
||||
@@ -482,7 +493,7 @@ static void window_editor_scenario_options_financial_mousedown(int widgetIndex,
|
||||
{
|
||||
switch (widgetIndex) {
|
||||
case WIDX_INITIAL_CASH_INCREASE:
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_INITIAL_CASH, money32) < MONEY(10000,00)) {
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_INITIAL_CASH, money32) < MONEY(1000000,00)) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_INITIAL_CASH, money32) += MONEY(500,00);
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_MONEY_ENCRYPTED, money32) = ENCRYPT_MONEY(RCT2_GLOBAL(RCT2_ADDRESS_INITIAL_CASH, money32));
|
||||
sub_69E869();
|
||||
@@ -546,7 +557,7 @@ static void window_editor_scenario_options_financial_mousedown(int widgetIndex,
|
||||
window_invalidate(w);
|
||||
break;
|
||||
case WIDX_INTEREST_RATE_DECREASE:
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_INTEREST_RATE, money32) > 5) {
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_INTEREST_RATE, money32) >= 0) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_INTEREST_RATE, money32)--;
|
||||
} else {
|
||||
window_error_open(3255, STR_NONE);
|
||||
@@ -554,6 +565,11 @@ static void window_editor_scenario_options_financial_mousedown(int widgetIndex,
|
||||
window_invalidate(w);
|
||||
break;
|
||||
}
|
||||
|
||||
if(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_PLAYING) {
|
||||
window_invalidate_by_class(WC_FINANCES);
|
||||
window_invalidate_by_class(WC_BOTTOM_TOOLBAR);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -732,7 +748,7 @@ static void window_editor_scenario_options_guests_mousedown(int widgetIndex, rct
|
||||
{
|
||||
switch (widgetIndex) {
|
||||
case WIDX_CASH_PER_GUEST_INCREASE:
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_GUEST_INITIAL_CASH, money16) < MONEY(100, 00)) {
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_GUEST_INITIAL_CASH, money16) < MONEY(1000, 00)) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GUEST_INITIAL_CASH, money16) += MONEY(1, 00);
|
||||
} else {
|
||||
window_error_open(3264, STR_NONE);
|
||||
|
||||
Reference in New Issue
Block a user