diff --git a/src/openrct2-ui/interface/Widget.cpp b/src/openrct2-ui/interface/Widget.cpp index 0df6a1ddf1..68becf95e3 100644 --- a/src/openrct2-ui/interface/Widget.cpp +++ b/src/openrct2-ui/interface/Widget.cpp @@ -229,7 +229,7 @@ static void WidgetTabDraw(rct_drawpixelinfo* dpi, rct_window& w, WidgetIndex wid if (widget.image == static_cast(SPR_NONE)) { // Set standard tab sprite to use. - widget.image = IMAGE_TYPE_REMAP | SPR_TAB; + widget.image = ImageId(SPR_TAB, FilterPaletteID::PaletteNull).ToUInt32(); } } diff --git a/src/openrct2-ui/interface/Window.cpp b/src/openrct2-ui/interface/Window.cpp index a122f60ec7..27b7bcc636 100644 --- a/src/openrct2-ui/interface/Window.cpp +++ b/src/openrct2-ui/interface/Window.cpp @@ -472,14 +472,14 @@ static bool WindowOtherWheelInput(rct_window& w, WidgetIndex widgetIndex, int32_ case WindowWidgetType::ImgBtn: buttonWidgetIndex = wheel < 0 ? widgetIndex + 2 : widgetIndex + 1; expectedType = WindowWidgetType::TrnBtn; - expectedContent[0] = IMAGE_TYPE_REMAP | SPR_LAND_TOOL_DECREASE; - expectedContent[1] = IMAGE_TYPE_REMAP | SPR_LAND_TOOL_INCREASE; + expectedContent[0] = ImageId(SPR_LAND_TOOL_DECREASE, FilterPaletteID::PaletteNull).ToUInt32(); + expectedContent[1] = ImageId(SPR_LAND_TOOL_INCREASE, FilterPaletteID::PaletteNull).ToUInt32(); break; case WindowWidgetType::Spinner: buttonWidgetIndex = wheel < 0 ? widgetIndex + 1 : widgetIndex + 2; expectedType = WindowWidgetType::Button; - expectedContent[0] = STR_NUMERIC_UP; - expectedContent[1] = STR_NUMERIC_DOWN; + expectedContent[0] = ImageId(STR_NUMERIC_UP, FilterPaletteID::PaletteNull).ToUInt32(); + expectedContent[1] = ImageId(STR_NUMERIC_DOWN, FilterPaletteID::PaletteNull).ToUInt32(); break; default: return false; diff --git a/src/openrct2-ui/scripting/CustomWindow.cpp b/src/openrct2-ui/scripting/CustomWindow.cpp index 0542ec968c..d858f2b070 100644 --- a/src/openrct2-ui/scripting/CustomWindow.cpp +++ b/src/openrct2-ui/scripting/CustomWindow.cpp @@ -902,7 +902,7 @@ namespace OpenRCT2::Ui::Windows widget.right = widget.left + 30; widget.top = 17; widget.bottom = 43; - widget.image = IMAGE_TYPE_REMAP | SPR_TAB; + widget.image = ImageId(SPR_TAB, FilterPaletteID::PaletteNull).ToUInt32(); widget.tooltip = STR_NONE; widgetList.push_back(widget); info.WidgetIndexMap.push_back(std::numeric_limits::max()); diff --git a/src/openrct2-ui/windows/Scenery.cpp b/src/openrct2-ui/windows/Scenery.cpp index 03deeade4a..75f0027819 100644 --- a/src/openrct2-ui/windows/Scenery.cpp +++ b/src/openrct2-ui/windows/Scenery.cpp @@ -1036,7 +1036,7 @@ private: if (tabInfo.SceneryGroupIndex == OBJECT_ENTRY_INDEX_NULL) { - widget.image = SPR_TAB_QUESTION | IMAGE_TYPE_REMAP; + widget.image = ImageId(SPR_TAB_QUESTION, FilterPaletteID::PaletteNull).ToUInt32(); } _widgets.push_back(widget); diff --git a/src/openrct2-ui/windows/TopToolbar.cpp b/src/openrct2-ui/windows/TopToolbar.cpp index 026010de8d..fbfa09a1dc 100644 --- a/src/openrct2-ui/windows/TopToolbar.cpp +++ b/src/openrct2-ui/windows/TopToolbar.cpp @@ -836,9 +836,9 @@ static void WindowTopToolbarInvalidate(rct_window* w) w->pressed_widgets &= ~(1uLL << WIDX_PAUSE); if (!OpenRCT2::Audio::gGameSoundsOff) - window_top_toolbar_widgets[WIDX_MUTE].image = IMAGE_TYPE_REMAP | SPR_G2_TOOLBAR_MUTE; + window_top_toolbar_widgets[WIDX_MUTE].image = ImageId(SPR_G2_TOOLBAR_MUTE, FilterPaletteID::PaletteNull).ToUInt32(); else - window_top_toolbar_widgets[WIDX_MUTE].image = IMAGE_TYPE_REMAP | SPR_G2_TOOLBAR_UNMUTE; + window_top_toolbar_widgets[WIDX_MUTE].image = ImageId(SPR_G2_TOOLBAR_UNMUTE, FilterPaletteID::PaletteNull).ToUInt32(); // Set map button to the right image. if (window_top_toolbar_widgets[WIDX_MAP].type != WindowWidgetType::Empty) @@ -851,7 +851,7 @@ static void WindowTopToolbarInvalidate(rct_window* w) }; uint32_t mapImageId = _imageIdByRotation[get_current_rotation()]; - window_top_toolbar_widgets[WIDX_MAP].image = IMAGE_TYPE_REMAP | mapImageId; + window_top_toolbar_widgets[WIDX_MAP].image = ImageId(mapImageId, FilterPaletteID::PaletteNull).ToUInt32(); } // Zoomed out/in disable. Not sure where this code is in the original. diff --git a/src/openrct2/drawing/Drawing.h b/src/openrct2/drawing/Drawing.h index 7329d49be3..bdc8fae9c9 100644 --- a/src/openrct2/drawing/Drawing.h +++ b/src/openrct2/drawing/Drawing.h @@ -154,16 +154,6 @@ enum G1_FLAG_NO_ZOOM_DRAW = (1 << 5), // Does not get drawn at higher zoom levels (only zoom 0) }; -enum : uint32_t -{ - IMAGE_TYPE_DEFAULT = 0, - IMAGE_TYPE_REMAP = (1 << 29), - IMAGE_TYPE_TRANSPARENT = (1 << 30), - IMAGE_TYPE_REMAP_2_PLUS = (1u << 31) - // REMAP_2_PLUS + REMAP = REMAP 2 - // REMAP_2_PLUS = REMAP 3 -}; - using DrawBlendOp = uint8_t; constexpr DrawBlendOp BLEND_NONE = 0; diff --git a/src/openrct2/drawing/ImageId.hpp b/src/openrct2/drawing/ImageId.hpp index 722cc692fd..9658e919ba 100644 --- a/src/openrct2/drawing/ImageId.hpp +++ b/src/openrct2/drawing/ImageId.hpp @@ -121,7 +121,7 @@ public: { } - [[nodiscard]] uint32_t ToUInt32() const + [[nodiscard]] constexpr uint32_t ToUInt32() const { auto result = (_index & MASK_INDEX); result |= (_primary << SHIFT_REMAP) & MASK_REMAP; diff --git a/src/openrct2/interface/Viewport.cpp b/src/openrct2/interface/Viewport.cpp index 06faa0198e..f6f0537bf0 100644 --- a/src/openrct2/interface/Viewport.cpp +++ b/src/openrct2/interface/Viewport.cpp @@ -45,6 +45,13 @@ using namespace OpenRCT2; +enum : uint32_t +{ + IMAGE_TYPE_DEFAULT = 0, + IMAGE_TYPE_REMAP = (1 << 29), + IMAGE_TYPE_TRANSPARENT = (1 << 30), +}; + uint8_t gShowGridLinesRefCount; uint8_t gShowLandRightsRefCount; uint8_t gShowConstructionRightsRefCount; @@ -1818,7 +1825,7 @@ static bool is_sprite_interacted_with(rct_drawpixelinfo* dpi, ImageId imageId, c } else { - _currentImageType = 0; + _currentImageType = IMAGE_TYPE_DEFAULT; } return is_sprite_interacted_with_palette_set(dpi, imageId, coords, paletteMap); } diff --git a/src/openrct2/interface/Widget.h b/src/openrct2/interface/Widget.h index d75b5e96ef..d924a063d4 100644 --- a/src/openrct2/interface/Widget.h +++ b/src/openrct2/interface/Widget.h @@ -81,9 +81,9 @@ constexpr rct_widget MakeWidget( constexpr rct_widget MakeRemapWidget( const ScreenCoordsXY& origin, const ScreenSize& size, WindowWidgetType type, WindowColour colour, - uint32_t content = 0xFFFFFFFF, StringId tooltip = STR_NONE) + ImageIndex content, StringId tooltip = STR_NONE) { - return MakeWidget(origin, size, type, colour, IMAGE_TYPE_REMAP | content, tooltip); + return MakeWidget(origin, size, type, colour, ImageId(content, FilterPaletteID::PaletteNull).ToUInt32(), tooltip); } constexpr rct_widget MakeTab(const ScreenCoordsXY& origin, StringId tooltip = STR_NONE)