mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-22 07:13:07 +01:00
Refactor the weather cheat UI
I removed the two buttons that were used previously to change the park's weather with a proper dropdown, which allows the player to select any of the available weather, not being limited to just two options. This change is (currently) listed on the project's wiki page 'Features to implement'.
This commit is contained in:
@@ -2763,8 +2763,8 @@ STR_2753 :Mowed grass
|
||||
STR_2754 :Water plants
|
||||
STR_2755 :Fix vandalism
|
||||
STR_2756 :Remove litter
|
||||
STR_2757 :Force Sun
|
||||
STR_2758 :Force Thunder
|
||||
STR_2757 :<not used anymore>
|
||||
STR_2758 :<not used anymore>
|
||||
STR_2759 :Zero Clearance
|
||||
STR_2760 :+{CURRENCY}
|
||||
STR_2761 :<not used anymore>
|
||||
@@ -4021,6 +4021,14 @@ STR_5716 :Not allowed in multiplayer mode
|
||||
# For identifying client network version in server list window
|
||||
STR_5717 :Network version: {STRING}
|
||||
STR_5718 :{SMALLFONT}{BLACK}Network version: {STRING}
|
||||
STR_5719 :Sunny
|
||||
STR_5720 :Partially Cloudy
|
||||
STR_5721 :Cloudy
|
||||
STR_5722 :Rain
|
||||
STR_5723 :Heavy Rain
|
||||
STR_5724 :Thunderstorm
|
||||
STR_5725 :{BLACK}Force weather:
|
||||
STR_5726 :{SMALLFONT}{BLACK}Sets the current weather in park
|
||||
|
||||
#############
|
||||
# Scenarios #
|
||||
|
||||
@@ -2313,6 +2313,15 @@ enum {
|
||||
STR_NETWORK_VERSION = 5717,
|
||||
STR_NETWORK_VERSION_TIP = 5718,
|
||||
|
||||
STR_SUNNY = 5719,
|
||||
STR_PARTIALLY_CLOUDY = STR_SUNNY + 1,
|
||||
STR_CLOUDY = STR_SUNNY + 2,
|
||||
STR_RAIN = STR_SUNNY + 3,
|
||||
STR_HEAVY_RAIN = STR_SUNNY + 4,
|
||||
STR_THUNDERSTORM = STR_SUNNY + 5,
|
||||
STR_FORCE_WEATHER = 5725,
|
||||
STR_FORCE_WEATHER_TOOLTIP = 5726,
|
||||
|
||||
// Have to include resource strings (from scenarios and objects) for the time being now that language is partially working
|
||||
STR_COUNT = 32768
|
||||
};
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "../cheats.h"
|
||||
#include "../network/network.h"
|
||||
#include "error.h"
|
||||
#include "dropdown.h"
|
||||
|
||||
#define CHEATS_MONEY_INCREMENT MONEY(5000,00)
|
||||
#define CHEATS_TRAM_INCREMENT 250
|
||||
@@ -102,8 +103,8 @@ enum WINDOW_CHEATS_WIDGET_IDX {
|
||||
WIDX_HAVE_FUN,
|
||||
WIDX_CLIMATE_GROUP,
|
||||
WIDX_FREEZE_CLIMATE,
|
||||
WIDX_WEATHER_SUN,
|
||||
WIDX_WEATHER_THUNDER,
|
||||
WIDX_WEATHER,
|
||||
WIDX_WEATHER_DROPDOWN_BUTTON,
|
||||
WIDX_STAFF_GROUP,
|
||||
WIDX_CLEAR_GRASS,
|
||||
WIDX_MOWED_GRASS,
|
||||
@@ -238,8 +239,8 @@ static rct_widget window_cheats_misc_widgets[] = {
|
||||
{ WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(5), HPL(5), STR_CHEAT_HAVE_FUN, STR_NONE}, // Have fun!
|
||||
{ WWT_GROUPBOX, 1, XPL(0) - GROUP_SPACE, WPL(1) + GROUP_SPACE, YPL(7), HPL(9.5), STR_CHEAT_CLIMATE_GROUP, STR_NONE }, // Climate group
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(8), HPL(8), STR_CHEAT_FREEZE_CLIMATE, STR_NONE}, // Freeze climate
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(9), HPL(9), STR_CHEAT_FORCE_SUN, STR_NONE}, // Sun
|
||||
{ WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(9), HPL(9), STR_CHEAT_FORCE_THUNDER, STR_NONE}, // Thunder
|
||||
{ WWT_DROPDOWN, 1, XPL(1), WPL(1), YPL(9) + 2, YPL(9) + 13, STR_NONE, STR_FORCE_WEATHER_TOOLTIP }, // Force weather
|
||||
{ WWT_DROPDOWN_BUTTON, 1, WPL(1) - 11, WPL(1) - 1, YPL(9) + 3, YPL(9) + 12, STR_DROPDOWN_GLYPH, STR_FORCE_WEATHER_TOOLTIP }, // Force weather
|
||||
{ WWT_GROUPBOX, 1, XPL(0) - GROUP_SPACE, WPL(1) + GROUP_SPACE, YPL(11), HPL(15.5), STR_CHEAT_STAFF_GROUP, STR_NONE }, // Staff group
|
||||
{ WWT_CLOSEBOX, 1, XPL(0), WPL(0), YPL(12), HPL(12), STR_CHEAT_CLEAR_GRASS, STR_NONE}, // Clear grass
|
||||
{ WWT_CLOSEBOX, 1, XPL(1), WPL(1), YPL(12), HPL(12), STR_CHEAT_MOWED_GRASS, STR_NONE}, // Mowed grass
|
||||
@@ -276,6 +277,8 @@ static rct_widget *window_cheats_page_widgets[] = {
|
||||
};
|
||||
|
||||
static void window_cheats_money_mouseup(rct_window *w, int widgetIndex);
|
||||
static void window_cheats_misc_mousedown(int widgetIndex, rct_window *w, rct_widget* widget);
|
||||
static void window_cheats_misc_dropdown(rct_window *w, int widgetIndex, int dropdownIndex);
|
||||
static void window_cheats_guests_mouseup(rct_window *w, int widgetIndex);
|
||||
static void window_cheats_misc_mouseup(rct_window *w, int widgetIndex);
|
||||
static void window_cheats_rides_mouseup(rct_window *w, int widgetIndex);
|
||||
@@ -350,8 +353,8 @@ static rct_window_event_list window_cheats_misc_events = {
|
||||
NULL,
|
||||
window_cheats_misc_mouseup,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
window_cheats_misc_mousedown,
|
||||
window_cheats_misc_dropdown,
|
||||
NULL,
|
||||
window_cheats_update,
|
||||
NULL,
|
||||
@@ -419,7 +422,7 @@ static rct_window_event_list *window_cheats_page_events[] = {
|
||||
static uint64 window_cheats_page_enabled_widgets[] = {
|
||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_HIGH_MONEY) | (1ULL << WIDX_CLEAR_LOAN),
|
||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_GUEST_PARAMETERS_GROUP) | (1ULL << WIDX_GUEST_HAPPINESS_MAX) | (1ULL << WIDX_GUEST_HAPPINESS_MIN) | (1ULL << WIDX_GUEST_ENERGY_MAX) | (1ULL << WIDX_GUEST_ENERGY_MIN) | (1ULL << WIDX_GUEST_HUNGER_MAX) | (1ULL << WIDX_GUEST_HUNGER_MIN) | (1ULL << WIDX_GUEST_THIRST_MAX) | (1ULL << WIDX_GUEST_THIRST_MIN) | (1ULL << WIDX_GUEST_NAUSEA_MAX) | (1ULL << WIDX_GUEST_NAUSEA_MIN) | (1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MAX) | (1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MIN) | (1ULL << WIDX_GUEST_BATHROOM_MAX) | (1ULL << WIDX_GUEST_BATHROOM_MIN) | (1ULL << WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1) | (1ULL << WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15) | (1ULL << WIDX_GUEST_IGNORE_RIDE_INTENSITY) | (1ULL << WIDX_GIVE_ALL_GUESTS_GROUP) | (1ULL << WIDX_GIVE_GUESTS_MONEY) | (1ULL << WIDX_GIVE_GUESTS_PARK_MAPS) | (1ULL << WIDX_GIVE_GUESTS_BALLOONS) | (1ULL << WIDX_GIVE_GUESTS_UMBRELLAS) | (1ULL << WIDX_TRAM_GUESTS) | (1ULL << WIDX_REMOVE_ALL_GUESTS) | (1ULL << WIDX_EXPLODE_GUESTS) | (1ULL << WIDX_DISABLE_VANDALISM),
|
||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_FREEZE_CLIMATE) | (1ULL << WIDX_OPEN_CLOSE_PARK) | (1ULL << WIDX_WEATHER_SUN) | (1ULL << WIDX_WEATHER_THUNDER) | (1ULL << WIDX_CLEAR_GRASS) | (1ULL << WIDX_MOWED_GRASS) | (1ULL << WIDX_WATER_PLANTS) | (1ULL << WIDX_FIX_VANDALISM) | (1ULL << WIDX_REMOVE_LITTER) | (1ULL << WIDX_WIN_SCENARIO) | (1ULL << WIDX_HAVE_FUN) | (1ULL << WIDX_UNLOCK_ALL_PRICES) | (1ULL << WIDX_SANDBOX_MODE) | (1ULL << WIDX_FAST_STAFF) | (1ULL << WIDX_NORMAL_STAFF) | (1ULL << WIDX_PARK_PARAMETERS) | (1ULL << WIDX_FORCE_PARK_RATING) | (1ULL << WIDX_INCREASE_PARK_RATING) | (1ULL << WIDX_DECREASE_PARK_RATING),
|
||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_FREEZE_CLIMATE) | (1ULL << WIDX_OPEN_CLOSE_PARK) | (1ULL << WIDX_WEATHER) | (1ULL << WIDX_WEATHER_DROPDOWN_BUTTON) | (1ULL << WIDX_CLEAR_GRASS) | (1ULL << WIDX_MOWED_GRASS) | (1ULL << WIDX_WATER_PLANTS) | (1ULL << WIDX_FIX_VANDALISM) | (1ULL << WIDX_REMOVE_LITTER) | (1ULL << WIDX_WIN_SCENARIO) | (1ULL << WIDX_HAVE_FUN) | (1ULL << WIDX_UNLOCK_ALL_PRICES) | (1ULL << WIDX_SANDBOX_MODE) | (1ULL << WIDX_FAST_STAFF) | (1ULL << WIDX_NORMAL_STAFF) | (1ULL << WIDX_PARK_PARAMETERS) | (1ULL << WIDX_FORCE_PARK_RATING) | (1ULL << WIDX_INCREASE_PARK_RATING) | (1ULL << WIDX_DECREASE_PARK_RATING),
|
||||
(1ULL << WIDX_CLOSE) | (1ULL << WIDX_TAB_1) | (1ULL << WIDX_TAB_2) | (1ULL << WIDX_TAB_3) | (1ULL << WIDX_TAB_4) | (1ULL << WIDX_RENEW_RIDES) | (1ULL << WIDX_MAKE_DESTRUCTIBLE) | (1ULL << WIDX_FIX_ALL) | (1ULL << WIDX_FAST_LIFT_HILL) | (1ULL << WIDX_DISABLE_BRAKES_FAILURE) | (1ULL << WIDX_DISABLE_ALL_BREAKDOWNS) | (1ULL << WIDX_BUILD_IN_PAUSE_MODE) | (1ULL << WIDX_RESET_CRASH_STATUS) | (1ULL << WIDX_10_MINUTE_INSPECTIONS) | (1ULL << WIDX_SHOW_ALL_OPERATING_MODES) | (1ULL << WIDX_SHOW_VEHICLES_FROM_OTHER_TRACK_TYPES)
|
||||
};
|
||||
|
||||
@@ -783,6 +786,42 @@ void window_cheats_open()
|
||||
park_rating_spinner_value = get_forced_park_rating() >= 0 ? get_forced_park_rating() : 999;
|
||||
}
|
||||
|
||||
static void window_cheats_misc_mousedown(int widgetIndex, rct_window *w, rct_widget* widget)
|
||||
{
|
||||
rct_widget *dropdownWidget;
|
||||
int i;
|
||||
|
||||
if (widgetIndex != WIDX_WEATHER_DROPDOWN_BUTTON)
|
||||
return;
|
||||
|
||||
dropdownWidget = widget - 1;
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
gDropdownItemsFormat[i] = 1142;
|
||||
gDropdownItemsArgs[i] = STR_SUNNY + i;
|
||||
}
|
||||
window_dropdown_show_text_custom_width(
|
||||
w->x + dropdownWidget->left,
|
||||
w->y + dropdownWidget->top,
|
||||
dropdownWidget->bottom - dropdownWidget->top + 1,
|
||||
w->colours[1],
|
||||
DROPDOWN_FLAG_STAY_OPEN,
|
||||
6,
|
||||
dropdownWidget->right - dropdownWidget->left - 3
|
||||
);
|
||||
|
||||
int currentWeather = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_WEATHER, uint8);
|
||||
dropdown_set_checked(currentWeather, true);
|
||||
}
|
||||
|
||||
static void window_cheats_misc_dropdown(rct_window *w, int widgetIndex, int dropdownIndex)
|
||||
{
|
||||
if (widgetIndex != WIDX_WEATHER_DROPDOWN_BUTTON || dropdownIndex == -1)
|
||||
return;
|
||||
|
||||
climate_force_weather(dropdownIndex);
|
||||
}
|
||||
|
||||
static void window_cheats_money_mouseup(rct_window *w, int widgetIndex)
|
||||
{
|
||||
switch (widgetIndex) {
|
||||
@@ -917,12 +956,6 @@ static void window_cheats_misc_mouseup(rct_window *w, int widgetIndex)
|
||||
case WIDX_OPEN_CLOSE_PARK:
|
||||
park_set_open(park_is_open() ? 0 : 1);
|
||||
break;
|
||||
case WIDX_WEATHER_SUN:
|
||||
climate_force_weather(WEATHER_SUNNY);
|
||||
break;
|
||||
case WIDX_WEATHER_THUNDER:
|
||||
climate_force_weather(WEATHER_THUNDER);
|
||||
break;
|
||||
case WIDX_CLEAR_GRASS:
|
||||
cheat_set_grass_length(GRASS_LENGTH_CLEAR_0);
|
||||
break;
|
||||
@@ -1124,6 +1157,10 @@ static void window_cheats_invalidate(rct_window *w)
|
||||
|
||||
// Set title
|
||||
w->widgets[WIDX_TITLE].image = window_cheats_page_titles[w->page];
|
||||
|
||||
// Current weather
|
||||
int currentWeather = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_WEATHER, uint8);
|
||||
window_cheats_misc_widgets[WIDX_WEATHER].image = STR_SUNNY + currentWeather;
|
||||
}
|
||||
|
||||
static void window_cheats_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
@@ -1138,6 +1175,7 @@ static void window_cheats_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
}
|
||||
else if(w->page == WINDOW_CHEATS_PAGE_MISC){
|
||||
gfx_draw_string_left(dpi, STR_CHEAT_STAFF_SPEED, NULL, 0, w->x + XPL(0) + TXTO, w->y + YPL(15) + TXTO);
|
||||
gfx_draw_string_left(dpi, STR_FORCE_WEATHER, NULL, 0, w->x + XPL(0) + TXTO, w->y + YPL(9) + TXTO);
|
||||
gfx_draw_string_right(dpi, 5182, &park_rating_spinner_value, w->colours[2], w->x + WPL(1) - 10 - TXTO, w->y + YPL(4) + TXTO);
|
||||
}
|
||||
else if (w->page == WINDOW_CHEATS_PAGE_GUESTS){
|
||||
|
||||
Reference in New Issue
Block a user