mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 11:03:00 +01:00
Disable page widgets until a map is loaded
A few strings have their {WINDOW_COLOUR_2} setting removed, since this
prevented strings from being market as inset. All uses of these strings
have been checked.
This commit is contained in:
committed by
Michał Janiszewski
parent
a26dc83647
commit
2cd4a686f6
@@ -2691,14 +2691,14 @@ STR_2682 :<removed string - do not use>
|
||||
STR_2683 :<removed string - do not use>
|
||||
STR_2684 :{SMALLFONT}{BLACK}Large group of guests arrive
|
||||
STR_2685 :Simplex Noise Parameters
|
||||
STR_2686 :{WINDOW_COLOUR_2}Low:
|
||||
STR_2687 :{WINDOW_COLOUR_2}High:
|
||||
STR_2688 :{WINDOW_COLOUR_2}Base Frequency:
|
||||
STR_2689 :{WINDOW_COLOUR_2}Octaves:
|
||||
STR_2686 :Low:
|
||||
STR_2687 :High:
|
||||
STR_2688 :Base Frequency:
|
||||
STR_2689 :Octaves:
|
||||
STR_2690 :Map Generation
|
||||
STR_2691 :{WINDOW_COLOUR_2}Base height:
|
||||
STR_2692 :{WINDOW_COLOUR_2}Water level:
|
||||
STR_2693 :{WINDOW_COLOUR_2}Terrain:
|
||||
STR_2691 :Base height:
|
||||
STR_2692 :Water level:
|
||||
STR_2693 :Terrain:
|
||||
STR_2694 :Generate
|
||||
STR_2695 :Random terrain
|
||||
STR_2696 :Place trees
|
||||
@@ -3218,7 +3218,7 @@ STR_3207 :Roller Coaster Designer
|
||||
STR_3208 :Track Designs Manager
|
||||
STR_3209 :Back to Previous Step:
|
||||
STR_3210 :Forward to Next Step:
|
||||
STR_3211 :{WINDOW_COLOUR_2}Map size:
|
||||
STR_3211 :Map size:
|
||||
STR_3212 :{POP16}{COMMA16} x {PUSH16}{COMMA16}
|
||||
STR_3213 :Can't decrease map size any further
|
||||
STR_3214 :Can't increase map size any further
|
||||
|
||||
@@ -866,7 +866,7 @@ static void window_map_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
}
|
||||
}
|
||||
} else if (!widget_is_active_tool(w, WIDX_SET_LAND_RIGHTS)) {
|
||||
gfx_draw_string_left(dpi, STR_MAP_SIZE, NULL, COLOUR_BLACK, w->x + 4, w->y + w->widgets[WIDX_MAP_SIZE_SPINNER].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_MAP_SIZE, NULL, w->colours[1], w->x + 4, w->y + w->widgets[WIDX_MAP_SIZE_SPINNER].top + 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -452,7 +452,16 @@ static uint64 PageEnabledWidgets[WINDOW_MAPGEN_PAGE_COUNT] = {
|
||||
(1ULL << WIDX_TAB_2) |
|
||||
(1ULL << WIDX_TAB_3) |
|
||||
(1ULL << WIDX_TAB_4) |
|
||||
(1ULL << WIDX_HEIGHTMAP_SELECT) |
|
||||
(1ULL << WIDX_HEIGHTMAP_SELECT)
|
||||
};
|
||||
|
||||
static uint64 PageDisabledWidgets[WINDOW_MAPGEN_PAGE_COUNT] = {
|
||||
0,
|
||||
|
||||
0,
|
||||
|
||||
0,
|
||||
|
||||
(1ULL << WIDX_HEIGHTMAP_SMOOTH_HEIGHTMAP) |
|
||||
(1ULL << WIDX_HEIGHTMAP_STRENGTH) |
|
||||
(1ULL << WIDX_HEIGHTMAP_STRENGTH_UP) |
|
||||
@@ -562,6 +571,7 @@ static sint32 _simplex_high = 10;
|
||||
static sint32 _simplex_base_freq = 60;
|
||||
static sint32 _simplex_octaves = 4;
|
||||
|
||||
static bool _heightmapLoaded = false;
|
||||
static bool _heightmapSmoothMap = false;
|
||||
static sint32 _heightmapSmoothStrength = 1;
|
||||
static bool _heightmapNormalize = false;
|
||||
@@ -571,21 +581,21 @@ static sint32 _heightmapHigh = 70;
|
||||
|
||||
rct_window *window_mapgen_open()
|
||||
{
|
||||
rct_window *w;
|
||||
|
||||
w = window_bring_to_front_by_class(WC_MAPGEN);
|
||||
if (w == NULL) {
|
||||
w = window_create_centred(
|
||||
WW,
|
||||
WH,
|
||||
PageEvents[WINDOW_MAPGEN_PAGE_BASE],
|
||||
WC_MAPGEN,
|
||||
WF_10
|
||||
);
|
||||
w->number = 0;
|
||||
w->frame_no = 0;
|
||||
rct_window *w = window_bring_to_front_by_class(WC_MAPGEN);
|
||||
if (w != NULL) {
|
||||
return w;
|
||||
}
|
||||
|
||||
w = window_create_centred(
|
||||
WW,
|
||||
WH,
|
||||
PageEvents[WINDOW_MAPGEN_PAGE_BASE],
|
||||
WC_MAPGEN,
|
||||
WF_10
|
||||
);
|
||||
w->number = 0;
|
||||
w->frame_no = 0;
|
||||
|
||||
w->page = WINDOW_MAPGEN_PAGE_BASE;
|
||||
window_invalidate(w);
|
||||
w->widgets = PageWidgets[WINDOW_MAPGEN_PAGE_BASE];
|
||||
@@ -593,9 +603,11 @@ rct_window *window_mapgen_open()
|
||||
w->hold_down_widgets = HoldDownWidgets[WINDOW_MAPGEN_PAGE_BASE];
|
||||
w->event_handlers = PageEvents[WINDOW_MAPGEN_PAGE_BASE];
|
||||
w->pressed_widgets = PressedWidgets[WINDOW_MAPGEN_PAGE_BASE];
|
||||
w->disabled_widgets = 0;
|
||||
w->disabled_widgets = PageDisabledWidgets[WINDOW_MAPGEN_PAGE_BASE];
|
||||
window_init_scroll_widgets(w);
|
||||
|
||||
_heightmapLoaded = false;
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
@@ -829,10 +841,12 @@ static void window_mapgen_base_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
window_draw_widgets(w, dpi);
|
||||
window_mapgen_draw_tab_images(dpi, w);
|
||||
|
||||
gfx_draw_string_left(dpi, STR_MAP_SIZE, NULL, COLOUR_BLACK, w->x + 4, w->y + w->widgets[WIDX_MAP_SIZE].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_BASE_HEIGHT_LABEL, NULL, COLOUR_BLACK, w->x + 4, w->y + w->widgets[WIDX_BASE_HEIGHT].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_WATER_LEVEL_LABEL, NULL, COLOUR_BLACK, w->x + 4, w->y + w->widgets[WIDX_WATER_LEVEL].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_TERRAIN_LABEL, NULL, COLOUR_BLACK, w->x + 4, w->y + w->widgets[WIDX_FLOOR_TEXTURE].top + 1);
|
||||
const uint8 textColour = w->colours[1];
|
||||
|
||||
gfx_draw_string_left(dpi, STR_MAP_SIZE, NULL, textColour, w->x + 4, w->y + w->widgets[WIDX_MAP_SIZE].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_BASE_HEIGHT_LABEL, NULL, textColour, w->x + 4, w->y + w->widgets[WIDX_BASE_HEIGHT].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_WATER_LEVEL_LABEL, NULL, textColour, w->x + 4, w->y + w->widgets[WIDX_WATER_LEVEL].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_TERRAIN_LABEL, NULL, textColour, w->x + 4, w->y + w->widgets[WIDX_FLOOR_TEXTURE].top + 1);
|
||||
|
||||
// The practical map size is 2 lower than the technical map size
|
||||
uint16 mapSizeArgs[2] = { _mapSize - 2, _mapSize -2 };
|
||||
@@ -1119,24 +1133,26 @@ static void window_mapgen_simplex_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
window_draw_widgets(w, dpi);
|
||||
window_mapgen_draw_tab_images(dpi, w);
|
||||
|
||||
gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_LOW_, NULL, COLOUR_BLACK, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_LOW].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_HIGH, NULL, COLOUR_BLACK, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_HIGH].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_BASE_FREQUENCY, NULL, COLOUR_BLACK, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_BASE_FREQ].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_OCTAVES, NULL, COLOUR_BLACK, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_OCTAVES].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_MAP_SIZE, NULL, COLOUR_BLACK, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_MAP_SIZE].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_WATER_LEVEL_LABEL, NULL, COLOUR_BLACK, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].top + 1);
|
||||
const uint8 textColour = w->colours[1];
|
||||
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &_simplex_low, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_LOW].left + 1, w->y + w->widgets[WIDX_SIMPLEX_LOW].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &_simplex_high, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_HIGH].left + 1, w->y + w->widgets[WIDX_SIMPLEX_HIGH].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_OBJECTIVE_VALUE_RATING, &_simplex_base_freq, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_BASE_FREQ].left + 1, w->y + w->widgets[WIDX_SIMPLEX_BASE_FREQ].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &_simplex_octaves, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_OCTAVES].left + 1, w->y + w->widgets[WIDX_SIMPLEX_OCTAVES].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_LOW_, NULL, textColour, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_LOW].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_HIGH, NULL, textColour, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_HIGH].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_BASE_FREQUENCY, NULL, textColour, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_BASE_FREQ].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_OCTAVES, NULL, textColour, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_OCTAVES].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_MAP_SIZE, NULL, textColour, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_MAP_SIZE].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_WATER_LEVEL_LABEL, NULL, textColour, w->x + 5, w->y + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].top + 1);
|
||||
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &_simplex_low, textColour, w->x + w->widgets[WIDX_SIMPLEX_LOW].left + 1, w->y + w->widgets[WIDX_SIMPLEX_LOW].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &_simplex_high, textColour, w->x + w->widgets[WIDX_SIMPLEX_HIGH].left + 1, w->y + w->widgets[WIDX_SIMPLEX_HIGH].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_OBJECTIVE_VALUE_RATING, &_simplex_base_freq, textColour, w->x + w->widgets[WIDX_SIMPLEX_BASE_FREQ].left + 1, w->y + w->widgets[WIDX_SIMPLEX_BASE_FREQ].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &_simplex_octaves, textColour, w->x + w->widgets[WIDX_SIMPLEX_OCTAVES].left + 1, w->y + w->widgets[WIDX_SIMPLEX_OCTAVES].top + 1);
|
||||
|
||||
// The practical map size is 2 lower than the technical map size
|
||||
uint16 mapSizeArgs[2] = { _mapSize - 2, _mapSize - 2 };
|
||||
gfx_draw_string_left(dpi, STR_RESOLUTION_X_BY_Y, mapSizeArgs, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_MAP_SIZE].left + 1, w->y + w->widgets[WIDX_SIMPLEX_MAP_SIZE].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_RESOLUTION_X_BY_Y, mapSizeArgs, textColour, w->x + w->widgets[WIDX_SIMPLEX_MAP_SIZE].left + 1, w->y + w->widgets[WIDX_SIMPLEX_MAP_SIZE].top + 1);
|
||||
|
||||
arg = (_waterLevel - 12) / 2;
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &arg, w->colours[1], w->x + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].left + 1, w->y + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &arg, textColour, w->x + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].left + 1, w->y + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].top + 1);
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
@@ -1184,7 +1200,7 @@ static void window_mapgen_heightmap_mousedown(sint32 widgetIndex, rct_window *w,
|
||||
}
|
||||
}
|
||||
|
||||
static void window_mapgen_heightmap_generate_map(rct_window *w)
|
||||
static void window_mapgen_heightmap_generate_map()
|
||||
{
|
||||
mapgen_settings mapgenSettings;
|
||||
mapgenSettings.water_level = _waterLevel;
|
||||
@@ -1206,9 +1222,12 @@ static void window_mapgen_heightmap_loadsave_callback(sint32 result, const utf8
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO #refactor: Window reference shouldn't be needed
|
||||
rct_window *const w = window_find_by_class(WC_MAPGEN);
|
||||
window_mapgen_heightmap_generate_map(w);
|
||||
// The window needs to be open while using the map
|
||||
rct_window *const w = window_mapgen_open();
|
||||
_heightmapLoaded = true;
|
||||
window_mapgen_set_page(w, WINDOW_MAPGEN_PAGE_HEIGHTMAP);
|
||||
|
||||
window_mapgen_heightmap_generate_map();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1252,7 +1271,7 @@ static void window_mapgen_heightmap_mouseup(rct_window *w, sint32 widgetIndex)
|
||||
}
|
||||
|
||||
// Always regenerate the map after one of the page widgets has been changed
|
||||
window_mapgen_heightmap_generate_map(w);
|
||||
window_mapgen_heightmap_generate_map();
|
||||
}
|
||||
|
||||
static void window_mapgen_heightmap_invalidate(rct_window *w)
|
||||
@@ -1286,16 +1305,17 @@ static void window_mapgen_heightmap_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &_heightmapSmoothStrength, strengthColour, w->x + w->widgets[WIDX_HEIGHTMAP_STRENGTH].left + 1, w->y + w->widgets[WIDX_HEIGHTMAP_STRENGTH].top + 1);
|
||||
|
||||
// Low label and value
|
||||
gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_LOW_, NULL, COLOUR_BLACK, w->x + 5, w->y + w->widgets[WIDX_HEIGHTMAP_LOW].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &_heightmapLow, enabledColour, w->x + w->widgets[WIDX_HEIGHTMAP_LOW].left + 1, w->y + w->widgets[WIDX_HEIGHTMAP_LOW].top + 1);
|
||||
const uint8 labelColour = _heightmapLoaded ? enabledColour : disabledColour;
|
||||
gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_LOW_, NULL, labelColour, w->x + 5, w->y + w->widgets[WIDX_HEIGHTMAP_LOW].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &_heightmapLow, labelColour, w->x + w->widgets[WIDX_HEIGHTMAP_LOW].left + 1, w->y + w->widgets[WIDX_HEIGHTMAP_LOW].top + 1);
|
||||
|
||||
// High label and value
|
||||
gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_HIGH, NULL, COLOUR_BLACK, w->x + 5, w->y + w->widgets[WIDX_HEIGHTMAP_HIGH].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &_heightmapHigh, enabledColour, w->x + w->widgets[WIDX_HEIGHTMAP_HIGH].left + 1, w->y + w->widgets[WIDX_HEIGHTMAP_HIGH].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_MAPGEN_SIMPLEX_NOISE_HIGH, NULL, labelColour, w->x + 5, w->y + w->widgets[WIDX_HEIGHTMAP_HIGH].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &_heightmapHigh, labelColour, w->x + w->widgets[WIDX_HEIGHTMAP_HIGH].left + 1, w->y + w->widgets[WIDX_HEIGHTMAP_HIGH].top + 1);
|
||||
|
||||
// Water level label and value
|
||||
gfx_draw_string_left(dpi, STR_WATER_LEVEL_LABEL, NULL, COLOUR_BLACK, w->x + 5, w->y + w->widgets[WIDX_HEIGHTMAP_WATER_LEVEL].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &_waterLevel, enabledColour, w->x + w->widgets[WIDX_HEIGHTMAP_WATER_LEVEL].left + 1, w->y + w->widgets[WIDX_HEIGHTMAP_WATER_LEVEL].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_WATER_LEVEL_LABEL, NULL, labelColour, w->x + 5, w->y + w->widgets[WIDX_HEIGHTMAP_WATER_LEVEL].top + 1);
|
||||
gfx_draw_string_left(dpi, STR_COMMA16, &_waterLevel, labelColour, w->x + w->widgets[WIDX_HEIGHTMAP_WATER_LEVEL].left + 1, w->y + w->widgets[WIDX_HEIGHTMAP_WATER_LEVEL].top + 1);
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
@@ -1315,9 +1335,29 @@ static void window_mapgen_set_page(rct_window *w, sint32 page)
|
||||
w->hold_down_widgets = HoldDownWidgets[page];
|
||||
w->event_handlers = PageEvents[page];
|
||||
w->widgets = PageWidgets[page];
|
||||
w->disabled_widgets = 0;
|
||||
w->disabled_widgets = PageDisabledWidgets[page];
|
||||
w->pressed_widgets = PressedWidgets[page];
|
||||
|
||||
// Enable heightmap widgets if one is loaded
|
||||
if (page == WINDOW_MAPGEN_PAGE_HEIGHTMAP && _heightmapLoaded)
|
||||
{
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_SMOOTH_HEIGHTMAP, true);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_STRENGTH, _heightmapSmoothMap);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_STRENGTH_UP, _heightmapSmoothMap);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_STRENGTH_DOWN, _heightmapSmoothMap);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_NORMALIZE, true);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_SMOOTH_TILES, true);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_HIGH, true);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_HIGH_UP, true);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_HIGH_DOWN, true);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_LOW, true);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_LOW_UP, true);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_LOW_DOWN, true);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_WATER_LEVEL, true);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_WATER_LEVEL_UP, true);
|
||||
widget_set_enabled(w, WIDX_HEIGHTMAP_WATER_LEVEL_DOWN, true);
|
||||
}
|
||||
|
||||
window_init_scroll_widgets(w);
|
||||
window_invalidate(w);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user