mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-04 13:42:55 +01:00
Introduce MakeTab wrapper function
The MakeTab function is only applied in two places, for the moment: the Cheats and Options windows.
This commit is contained in:
@@ -215,9 +215,21 @@ static void widget_tab_draw(rct_drawpixelinfo* dpi, rct_window* w, rct_widgetind
|
||||
// Get the widget
|
||||
rct_widget* widget = &w->widgets[widgetIndex];
|
||||
|
||||
if (static_cast<int32_t>(widget->image) == -1)
|
||||
if (widget->type != WWT_TAB && static_cast<int32_t>(widget->image) == -1)
|
||||
return;
|
||||
|
||||
if (widget->type == WWT_TAB)
|
||||
{
|
||||
if (widget_is_disabled(w, widgetIndex))
|
||||
return;
|
||||
|
||||
if (widget->image != (IMAGE_TYPE_REMAP | SPR_TAB_LARGE))
|
||||
{
|
||||
// Set standard tab sprite to use.
|
||||
widget->image = IMAGE_TYPE_REMAP | SPR_TAB;
|
||||
}
|
||||
}
|
||||
|
||||
// Draw widgets that aren't explicitly disabled.
|
||||
if (!widget_is_disabled(w, widgetIndex))
|
||||
{
|
||||
@@ -225,10 +237,6 @@ static void widget_tab_draw(rct_drawpixelinfo* dpi, rct_window* w, rct_widgetind
|
||||
return;
|
||||
}
|
||||
|
||||
// Do not draw hidden tabs, unless given a sprite.
|
||||
if (widget->type == WWT_TAB && widget->image != (IMAGE_TYPE_REMAP | SPR_G2_TAB_DISABLED))
|
||||
return;
|
||||
|
||||
if (widget->type != WWT_TRNBTN)
|
||||
{
|
||||
widget_draw_image(dpi, w, widgetIndex);
|
||||
|
||||
@@ -195,11 +195,11 @@ static constexpr const int32_t TAB_START = 3;
|
||||
|
||||
#define MAIN_CHEATS_WIDGETS \
|
||||
WINDOW_SHIM(WINDOW_TITLE, WW, WH), \
|
||||
MakeWidget ({ 0, 43}, {WW, 257}, WWT_IMGBTN, 1 ), /* tab content panel */ \
|
||||
MakeRemapWidget({ 3, 17}, {TAB_WIDTH, TAB_HEIGHT}, WWT_TAB, 1, SPR_TAB, STR_FINANCIAL_CHEATS_TIP), /* tab 1 */ \
|
||||
MakeRemapWidget({34, 17}, {TAB_WIDTH, TAB_HEIGHT}, WWT_TAB, 1, SPR_TAB, STR_GUEST_CHEATS_TIP ), /* tab 2 */ \
|
||||
MakeRemapWidget({65, 17}, {TAB_WIDTH, TAB_HEIGHT}, WWT_TAB, 1, SPR_TAB, STR_PARK_CHEATS_TIP ), /* tab 3 */ \
|
||||
MakeRemapWidget({96, 17}, {TAB_WIDTH, TAB_HEIGHT}, WWT_TAB, 1, SPR_TAB, STR_RIDE_CHEATS_TIP ) /* tab 4 */
|
||||
MakeWidget({ 0, 43}, {WW, 257}, WWT_IMGBTN, 1), /* tab content panel */ \
|
||||
MakeTab ({ 3, 17}, STR_FINANCIAL_CHEATS_TIP), /* tab 1 */ \
|
||||
MakeTab ({34, 17}, STR_GUEST_CHEATS_TIP ), /* tab 2 */ \
|
||||
MakeTab ({65, 17}, STR_PARK_CHEATS_TIP ), /* tab 3 */ \
|
||||
MakeTab ({96, 17}, STR_RIDE_CHEATS_TIP ) /* tab 4 */
|
||||
|
||||
static rct_widget window_cheats_money_widgets[] =
|
||||
{
|
||||
|
||||
@@ -194,14 +194,14 @@ static constexpr const int32_t WH = 332;
|
||||
|
||||
#define MAIN_OPTIONS_WIDGETS \
|
||||
WINDOW_SHIM(WINDOW_TITLE, WW, WH), \
|
||||
MakeWidget ({ 0, 43}, {WW, 289}, WWT_RESIZE, 1), \
|
||||
MakeRemapWidget({ 3, 17}, {31, 27}, WWT_TAB, 1, SPR_TAB, STR_OPTIONS_DISPLAY_TIP ), \
|
||||
MakeRemapWidget({ 34, 17}, {31, 27}, WWT_TAB, 1, SPR_TAB, STR_OPTIONS_RENDERING_TIP ), \
|
||||
MakeRemapWidget({ 65, 17}, {31, 27}, WWT_TAB, 1, SPR_TAB, STR_OPTIONS_CULTURE_TIP ), \
|
||||
MakeRemapWidget({ 96, 17}, {31, 27}, WWT_TAB, 1, SPR_TAB, STR_OPTIONS_AUDIO_TIP ), \
|
||||
MakeRemapWidget({127, 17}, {31, 27}, WWT_TAB, 1, SPR_TAB, STR_OPTIONS_CONTROLS_AND_INTERFACE_TIP), \
|
||||
MakeRemapWidget({158, 17}, {31, 27}, WWT_TAB, 1, SPR_TAB, STR_OPTIONS_MISCELLANEOUS_TIP ), \
|
||||
MakeRemapWidget({189, 17}, {31, 27}, WWT_TAB, 1, SPR_TAB, STR_OPTIONS_ADVANCED )
|
||||
MakeWidget({ 0, 43}, {WW, 289}, WWT_RESIZE, 1), \
|
||||
MakeTab ({ 3, 17}, STR_OPTIONS_DISPLAY_TIP ), \
|
||||
MakeTab ({ 34, 17}, STR_OPTIONS_RENDERING_TIP ), \
|
||||
MakeTab ({ 65, 17}, STR_OPTIONS_CULTURE_TIP ), \
|
||||
MakeTab ({ 96, 17}, STR_OPTIONS_AUDIO_TIP ), \
|
||||
MakeTab ({127, 17}, STR_OPTIONS_CONTROLS_AND_INTERFACE_TIP), \
|
||||
MakeTab ({158, 17}, STR_OPTIONS_MISCELLANEOUS_TIP ), \
|
||||
MakeTab ({189, 17}, STR_OPTIONS_ADVANCED )
|
||||
|
||||
static rct_widget window_options_display_widgets[] = {
|
||||
MAIN_OPTIONS_WIDGETS,
|
||||
|
||||
@@ -61,6 +61,8 @@ enum
|
||||
|
||||
constexpr uint8_t SCROLLBAR_WIDTH = 10;
|
||||
|
||||
constexpr const ScreenSize TAB_SIZE = { 31, 27 };
|
||||
|
||||
constexpr rct_widget MakeWidget(
|
||||
const ScreenCoordsXY& origin, const ScreenSize& size, uint8_t type, uint8_t colour, uint32_t content = 0xFFFFFFFF,
|
||||
rct_string_id tooltip = STR_NONE)
|
||||
@@ -85,6 +87,16 @@ constexpr rct_widget MakeRemapWidget(
|
||||
return MakeWidget(origin, size, type, colour, IMAGE_TYPE_REMAP | content, tooltip);
|
||||
}
|
||||
|
||||
constexpr rct_widget MakeTab(const ScreenCoordsXY& origin, rct_string_id tooltip = STR_NONE)
|
||||
{
|
||||
const ScreenSize size = TAB_SIZE;
|
||||
const uint8_t type = WWT_TAB;
|
||||
const uint8_t colour = 1;
|
||||
const uint32_t content = 0xFFFFFFFF;
|
||||
|
||||
return MakeWidget(origin, size, type, colour, content, tooltip);
|
||||
}
|
||||
|
||||
#define MakeSpinnerWidgets(...) \
|
||||
MakeWidget(__VA_ARGS__), MakeSpinnerIncreaseWidget(__VA_ARGS__), MakeSpinnerDecreaseWidget(__VA_ARGS__)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user