Make widget::colour safe (#1001)

* Initial start of making widget::colour safe

* Switch all makeWidgets to use enum class

* Modify name to WindowColour

* Use accessors for window colours

* Add assert
This commit is contained in:
Duncan 2021-06-18 13:15:17 +01:00 committed by GitHub
parent 68938e075e
commit 74995014e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
63 changed files with 946 additions and 930 deletions

View File

@ -151,7 +151,7 @@ namespace OpenLoco::Ui::Dropdown
};
Widget widgets[] = {
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::wt_3, 0),
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::wt_3, WindowColour::primary),
widgetEnd()
};
@ -221,7 +221,7 @@ namespace OpenLoco::Ui::Dropdown
}
}
auto colour = Colour::opaque(self->colours[0]);
auto colour = Colour::opaque(self->getColour(WindowColour::primary));
if (itemCount == _dropdownHighlightedIndex)
{
@ -232,7 +232,7 @@ namespace OpenLoco::Ui::Dropdown
{
if (itemCount < 32)
{
colour = Colour::inset(Colour::opaque(self->colours[0]));
colour = Colour::inset(Colour::opaque(self->getColour(WindowColour::primary)));
}
}
@ -261,14 +261,14 @@ namespace OpenLoco::Ui::Dropdown
auto x = _windowDropdownOnpaintCellX * _dropdownItemWidth + self->x + 2;
auto y = _windowDropdownOnpaintCellY * _dropdownItemHeight + self->y + 1 + _dropdownItemHeight / 2;
if (!(self->colours[0] & Colour::translucent_flag))
if (!(self->getColour(WindowColour::primary) & Colour::translucent_flag))
{
Gfx::drawRect(context, x, y, _dropdownItemWidth - 1, 1, Colour::getShade(self->colours[0], 3));
Gfx::drawRect(context, x, y + 1, _dropdownItemWidth - 1, 1, Colour::getShade(self->colours[0], 7));
Gfx::drawRect(context, x, y, _dropdownItemWidth - 1, 1, Colour::getShade(self->getColour(WindowColour::primary), 3));
Gfx::drawRect(context, x, y + 1, _dropdownItemWidth - 1, 1, Colour::getShade(self->getColour(WindowColour::primary), 7));
}
else
{
uint32_t colour = _byte_5045FA[Colour::opaque(self->colours[0])] | (1 << 25);
uint32_t colour = _byte_5045FA[Colour::opaque(self->getColour(WindowColour::primary))] | (1 << 25);
colour++;
Gfx::drawRect(context, x, y, _dropdownItemWidth - 1, 1, colour);
colour++;
@ -305,8 +305,8 @@ namespace OpenLoco::Ui::Dropdown
common::initEvents();
common::widgets[0].colour = Colour::black;
window->colours[0] = colour;
common::widgets[0].windowColour = WindowColour::primary;
window->setColour(WindowColour::primary, colour);
_dropdownHighlightedIndex = -1;
_dropdownDisabledItems = 0;
@ -378,7 +378,6 @@ namespace OpenLoco::Ui::Dropdown
_dropdownItemWidth = maxStringWidth;
_dropdownItemCount = static_cast<uint16_t>(count);
_dropdownRowCount = static_cast<uint32_t>(count);
widgets[0].colour = colour;
uint16_t dropdownHeight = _dropdownItemHeight * static_cast<uint16_t>(count) + 3;
widgets[0].bottom = dropdownHeight;
dropdownHeight++;
@ -472,7 +471,6 @@ namespace OpenLoco::Ui::Dropdown
_dropdownRowCount = 0;
_dropdownRowCount = count;
common::widgets[0].colour = colour;
int16_t dropdownHeight = (static_cast<int16_t>(count) * _dropdownItemHeight) + 3;
common::widgets[0].bottom = dropdownHeight;
dropdownHeight++;
@ -570,7 +568,6 @@ namespace OpenLoco::Ui::Dropdown
_dropdownItemCount = count;
_dropdownColumnCount = columnCount;
common::widgets[0].colour = colour;
_dropdownRowCount = _dropdownItemCount / _dropdownColumnCount + 1 * (_dropdownItemCount % _dropdownColumnCount);
uint16_t dropdownWidth = _dropdownItemWidth * _dropdownColumnCount + 3;
common::widgets[0].right = dropdownWidth;
@ -648,7 +645,7 @@ namespace OpenLoco::Ui::Dropdown
WindowManager::invalidateWidget(_pressedWindowType, _pressedWindowNumber, _pressedWidgetIndex);
auto widget = window->widgets[widgetIndex];
auto colour = window->colours[widget.colour];
auto colour = window->getColour(widget.windowColour);
colour = Colour::translucent(colour);
auto x = widget.left + window->x;
@ -741,7 +738,6 @@ namespace OpenLoco::Ui::Dropdown
_dropdownItemCount = static_cast<uint16_t>(count);
_dropdownRowCount = static_cast<uint32_t>(count);
common::widgets[0].colour = colour;
uint16_t dropdownHeight = static_cast<uint16_t>(count) * _dropdownItemHeight + 3;
common::widgets[0].bottom = dropdownHeight;
dropdownHeight++;
@ -837,7 +833,7 @@ namespace OpenLoco::Ui::Dropdown
}
auto x = widget->left + window->x;
auto y = widget->top + window->y;
auto colour = Colour::translucent(window->colours[widget->colour]);
auto colour = Colour::translucent(window->getColour(widget->windowColour));
showText(x, y, widget->width(), widget->height(), 25, colour, index, (1 << 6));

View File

@ -1164,7 +1164,7 @@ namespace OpenLoco::Ui::WindowManager
// Company colour
if (w->owner != CompanyId::null)
{
w->colours[0] = CompanyManager::getCompanyColour(w->owner);
w->setColour(WindowColour::primary, CompanyManager::getCompanyColour(w->owner));
}
addr<0x1136F9C, int16_t>() = w->x;
@ -1172,10 +1172,10 @@ namespace OpenLoco::Ui::WindowManager
loco_global<uint8_t[4], 0x1136594> windowColours;
// Text colouring
windowColours[0] = Colour::opaque(w->colours[0]);
windowColours[1] = Colour::opaque(w->colours[1]);
windowColours[2] = Colour::opaque(w->colours[2]);
windowColours[3] = Colour::opaque(w->colours[3]);
windowColours[0] = Colour::opaque(w->getColour(WindowColour::primary));
windowColours[1] = Colour::opaque(w->getColour(WindowColour::secondary));
windowColours[2] = Colour::opaque(w->getColour(WindowColour::tertiary));
windowColours[3] = Colour::opaque(w->getColour(WindowColour::quaternary));
w->callPrepareDraw();
w->callDraw(&context);

View File

@ -68,12 +68,12 @@ namespace OpenLoco::Ui
}
uint16_t widgetFlags = 0;
if (colour == 0 && window->flags & WindowFlags::flag_11)
if (windowColour == WindowColour::primary && window->flags & WindowFlags::flag_11)
{
widgetFlags = 0x80;
}
uint8_t wndColour = window->colours[colour];
uint8_t wndColour = window->getColour(windowColour);
auto widgetIndex = this - &window->widgets[0];
bool enabled = (window->enabled_widgets & (1ULL << widgetIndex)) != 0;
bool disabled = (window->disabled_widgets & (1ULL << widgetIndex)) != 0;
@ -205,10 +205,10 @@ namespace OpenLoco::Ui
if (Input::isPressed(window->type, window->number, widgetIndex))
flags = 0x20;
Gfx::drawRectInset(context, widget.left + window->x, widget.top + window->y, widget.width(), widget.height(), Colour::translucent(window->colours[1]), flags);
Gfx::drawRectInset(context, widget.left + window->x, widget.top + window->y, widget.width(), widget.height(), Colour::translucent(window->getColour(WindowColour::secondary)), flags);
}
Gfx::drawImage(context, widget.left + window->x, widget.top + window->y, Gfx::recolour(ImageIds::centre_viewport, window->colours[1]));
Gfx::drawImage(context, widget.left + window->x, widget.top + window->y, Gfx::recolour(ImageIds::centre_viewport, window->getColour(WindowColour::secondary)));
}
// 0x004CAB8E
@ -918,7 +918,7 @@ namespace OpenLoco::Ui
void Widget::drawGroupbox(Gfx::Context* const context, const Window* window, Widget* widget)
{
const uint8_t colour = window->colours[widget->colour] & 0x7F;
const uint8_t colour = window->getColour(widget->windowColour) & 0x7F;
int32_t l = window->x + widget->left + 5;
int32_t t = window->y + widget->top;
int32_t r = window->x + widget->right;
@ -1005,7 +1005,7 @@ namespace OpenLoco::Ui
Gfx::drawImage(ctx, pos.x, pos.y + 1, imageId);
}
Gfx::drawImage(ctx, pos.x, pos.y, (1 << 30) | (51 << 19) | ImageIds::tab);
Gfx::drawRect(ctx, pos.x, pos.y + 26, 31, 1, Colour::getShade(w->colours[1], 7));
Gfx::drawRect(ctx, pos.x, pos.y + 26, 31, 1, Colour::getShade(w->getColour(WindowColour::secondary), 7));
}
}
}

View File

@ -9,12 +9,12 @@ namespace OpenLoco::Ui
{
struct Widget
{
WidgetType type; // 0x00
uint8_t colour; // 0x01
int16_t left; // 0x02
int16_t right; // 0x04
int16_t top; // 0x06
int16_t bottom; // 0x08
WidgetType type; // 0x00
WindowColour windowColour; // 0x01
int16_t left; // 0x02
int16_t right; // 0x04
int16_t top; // 0x06
int16_t bottom; // 0x08
union
{
uint32_t image;
@ -66,7 +66,7 @@ namespace OpenLoco::Ui
static void drawGroupbox(Gfx::Context* const context, const Window* window, Widget* widget);
};
static constexpr Widget makeWidget(Gfx::point_t origin, Gfx::ui_size_t size, WidgetType type, uint8_t colour, uint32_t content = 0xFFFFFFFF, string_id tooltip = StringIds::null)
static constexpr Widget makeWidget(Gfx::point_t origin, Gfx::ui_size_t size, WidgetType type, WindowColour colour, uint32_t content = 0xFFFFFFFF, string_id tooltip = StringIds::null)
{
Widget out = {};
out.left = origin.x;
@ -74,14 +74,14 @@ namespace OpenLoco::Ui
out.top = origin.y;
out.bottom = origin.y + size.height - 1;
out.type = type;
out.colour = colour;
out.windowColour = colour;
out.content = content;
out.tooltip = tooltip;
return out;
}
constexpr Widget makeRemapWidget(Gfx::point_t origin, Gfx::ui_size_t size, WidgetType type, uint8_t colour, uint32_t content = 0xFFFFFFFF, string_id tooltip = StringIds::null)
constexpr Widget makeRemapWidget(Gfx::point_t origin, Gfx::ui_size_t size, WidgetType type, WindowColour colour, uint32_t content = 0xFFFFFFFF, string_id tooltip = StringIds::null)
{
Widget out = makeWidget(origin, size, type, colour, content, tooltip);
@ -95,7 +95,7 @@ namespace OpenLoco::Ui
makeWidget(__VA_ARGS__), \
makeDropdownButtonWidget(__VA_ARGS__)
[[maybe_unused]] static constexpr Widget makeDropdownButtonWidget(Gfx::point_t origin, Gfx::ui_size_t size, [[maybe_unused]] WidgetType type, uint8_t colour, [[maybe_unused]] uint32_t content = 0xFFFFFFFF, [[maybe_unused]] string_id tooltip = StringIds::null)
[[maybe_unused]] static constexpr Widget makeDropdownButtonWidget(Gfx::point_t origin, Gfx::ui_size_t size, [[maybe_unused]] WidgetType type, WindowColour colour, [[maybe_unused]] uint32_t content = 0xFFFFFFFF, [[maybe_unused]] string_id tooltip = StringIds::null)
{
const int16_t xPos = origin.x + size.width - 12;
const int16_t yPos = origin.y + 1;
@ -110,7 +110,7 @@ namespace OpenLoco::Ui
makeStepperDecreaseWidget(__VA_ARGS__), \
makeStepperIncreaseWidget(__VA_ARGS__)
[[maybe_unused]] static constexpr Widget makeStepperDecreaseWidget(Gfx::point_t origin, Gfx::ui_size_t size, [[maybe_unused]] WidgetType type, uint8_t colour, [[maybe_unused]] uint32_t content = 0xFFFFFFFF, [[maybe_unused]] string_id tooltip = StringIds::null)
[[maybe_unused]] static constexpr Widget makeStepperDecreaseWidget(Gfx::point_t origin, Gfx::ui_size_t size, [[maybe_unused]] WidgetType type, WindowColour colour, [[maybe_unused]] uint32_t content = 0xFFFFFFFF, [[maybe_unused]] string_id tooltip = StringIds::null)
{
const int16_t xPos = origin.x + size.width - 26;
const int16_t yPos = origin.y + 1;
@ -120,7 +120,7 @@ namespace OpenLoco::Ui
return makeWidget({ xPos, yPos }, { width, height }, WidgetType::wt_11, colour, StringIds::stepper_minus);
}
[[maybe_unused]] static constexpr Widget makeStepperIncreaseWidget(Gfx::point_t origin, Gfx::ui_size_t size, [[maybe_unused]] WidgetType type, uint8_t colour, [[maybe_unused]] uint32_t content = 0xFFFFFFFF, [[maybe_unused]] string_id tooltip = StringIds::null)
[[maybe_unused]] static constexpr Widget makeStepperIncreaseWidget(Gfx::point_t origin, Gfx::ui_size_t size, [[maybe_unused]] WidgetType type, WindowColour colour, [[maybe_unused]] uint32_t content = 0xFFFFFFFF, [[maybe_unused]] string_id tooltip = StringIds::null)
{
const int16_t xPos = origin.x + size.width - 13;
const int16_t yPos = origin.y + 1;
@ -130,7 +130,7 @@ namespace OpenLoco::Ui
return makeWidget({ xPos, yPos }, { width, height }, WidgetType::wt_11, colour, StringIds::stepper_plus);
}
constexpr Widget makeTextWidget(Gfx::point_t origin, Gfx::ui_size_t size, WidgetType type, uint8_t colour, string_id content, string_id tooltip = StringIds::null)
constexpr Widget makeTextWidget(Gfx::point_t origin, Gfx::ui_size_t size, WidgetType type, WindowColour colour, string_id content, string_id tooltip = StringIds::null)
{
Widget out = {};
out.left = origin.x;
@ -138,7 +138,7 @@ namespace OpenLoco::Ui
out.top = origin.y;
out.bottom = origin.y + size.height - 1;
out.type = type;
out.colour = colour;
out.windowColour = colour;
out.text = content;
out.tooltip = tooltip;

View File

@ -62,6 +62,15 @@ namespace OpenLoco::Ui
end = 30,
};
enum class WindowColour : uint8_t
{
primary,
secondary,
tertiary,
quaternary,
count
};
namespace Scrollbars
{
constexpr uint8_t none = 0;
@ -287,7 +296,7 @@ namespace OpenLoco::Ui
uint8_t pad_883[1];
CompanyId_t owner = CompanyId::null; // 0x884
uint8_t var_885 = 0xFF;
uint8_t colours[4]; // 0x886
uint8_t colours[static_cast<uint8_t>(WindowColour::count)]; // 0x886
int16_t var_88A;
int16_t var_88C;
@ -336,6 +345,17 @@ namespace OpenLoco::Ui
setSize(size, size);
}
constexpr uint8_t getColour(WindowColour index) const
{
assert(index < WindowColour::count);
return colours[static_cast<uint8_t>(index)];
}
constexpr void setColour(WindowColour index, Colour_t colour)
{
assert(index < WindowColour::count);
colours[static_cast<uint8_t>(index)] = colour;
}
bool isVisible()
{
return true;

View File

@ -24,11 +24,11 @@ namespace OpenLoco::Ui::Windows::About
}
static Widget _widgets[] = {
makeWidget({ 0, 0 }, windowSize, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { windowSize.width - 2, 13 }, WidgetType::caption_25, 0, StringIds::about_locomotion_caption),
makeWidget({ windowSize.width - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { windowSize.width, 245 }, WidgetType::panel, 1),
makeWidget({ 100, 234 }, { windowSize.width / 2, 12 }, WidgetType::wt_11, 1, StringIds::music_acknowledgements_btn),
makeWidget({ 0, 0 }, windowSize, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { windowSize.width - 2, 13 }, WidgetType::caption_25, WindowColour::primary, StringIds::about_locomotion_caption),
makeWidget({ windowSize.width - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { windowSize.width, 245 }, WidgetType::panel, WindowColour::secondary),
makeWidget({ 100, 234 }, { windowSize.width / 2, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::music_acknowledgements_btn),
widgetEnd(),
};
@ -55,8 +55,8 @@ namespace OpenLoco::Ui::Windows::About
window->initScrollWidgets();
const auto interface = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = interface->colour_0B;
window->colours[1] = interface->colour_10;
window->setColour(WindowColour::primary, interface->colour_0B);
window->setColour(WindowColour::secondary, interface->colour_10);
}
// 0x0043B4AF

View File

@ -30,11 +30,11 @@ namespace OpenLoco::Ui::Windows::AboutMusic
}
static Widget _widgets[] = {
makeWidget({ 0, 0 }, windowSize, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { windowSize.width - 2, 13 }, WidgetType::caption_25, 0, StringIds::music_acknowledgements_caption),
makeWidget({ windowSize.width - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { windowSize.width, 297 }, WidgetType::panel, 1),
makeWidget({ 4, 18 }, { windowSize.width - 8, 289 }, WidgetType::scrollview, 1, Ui::Scrollbars::vertical),
makeWidget({ 0, 0 }, windowSize, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { windowSize.width - 2, 13 }, WidgetType::caption_25, WindowColour::primary, StringIds::music_acknowledgements_caption),
makeWidget({ windowSize.width - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { windowSize.width, 297 }, WidgetType::panel, WindowColour::secondary),
makeWidget({ 4, 18 }, { windowSize.width - 8, 289 }, WidgetType::scrollview, WindowColour::secondary, Ui::Scrollbars::vertical),
widgetEnd(),
};
@ -61,8 +61,8 @@ namespace OpenLoco::Ui::Windows::AboutMusic
window->initScrollWidgets();
const auto interface = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = interface->colour_0B;
window->colours[1] = interface->colour_10;
window->setColour(WindowColour::primary, interface->colour_0B);
window->setColour(WindowColour::secondary, interface->colour_10);
}
// 0x0043BFB0

View File

@ -190,26 +190,26 @@ namespace OpenLoco::Ui::Windows::BuildVehicle
// 0x5231D0
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 380, 233 }, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { 378, 13 }, WidgetType::caption_24, 0),
makeWidget({ 365, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 41 }, { 380, 192 }, WidgetType::panel, 1),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_build_new_train_vehicles),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_build_new_buses),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_build_new_trucks),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_build_new_trams),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_build_new_aircraft),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_build_new_ships),
makeRemapWidget({ 5, 43 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 36, 43 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 67, 43 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 98, 43 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 129, 43 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 160, 43 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 191, 43 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 222, 43 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeWidget({ 3, 72 }, { 374, 146 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 250, 44 }, { 180, 66 }, WidgetType::scrollview, 1, Scrollbars::none),
makeWidget({ 0, 0 }, { 380, 233 }, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { 378, 13 }, WidgetType::caption_24, WindowColour::primary),
makeWidget({ 365, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 41 }, { 380, 192 }, WidgetType::panel, WindowColour::secondary),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_build_new_train_vehicles),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_build_new_buses),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_build_new_trucks),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_build_new_trams),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_build_new_aircraft),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_build_new_ships),
makeRemapWidget({ 5, 43 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 36, 43 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 67, 43 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 98, 43 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 129, 43 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 160, 43 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 191, 43 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeRemapWidget({ 222, 43 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_vehicles_for),
makeWidget({ 3, 72 }, { 374, 146 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
makeWidget({ 250, 44 }, { 180, 66 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::none),
widgetEnd(),
};
@ -261,7 +261,7 @@ namespace OpenLoco::Ui::Windows::BuildVehicle
auto skin = OpenLoco::ObjectManager::get<InterfaceSkinObject>();
if (skin != nullptr)
{
window->colours[1] = skin->colour_0A;
window->setColour(WindowColour::secondary, skin->colour_0A);
}
setDisabledTransportTabs(window);
return window;
@ -1038,7 +1038,7 @@ namespace OpenLoco::Ui::Windows::BuildVehicle
{
case scrollIdx::vehicle_selection:
{
auto colour = Colour::getShade(window->colours[1], 4);
auto colour = Colour::getShade(window->getColour(WindowColour::secondary), 4);
Gfx::clear(*context, colour * 0x01010101);
if (window->var_83C == 0)
{
@ -1099,7 +1099,7 @@ namespace OpenLoco::Ui::Windows::BuildVehicle
}
case scrollIdx::vehicle_preview:
{
auto colour = Colour::getShade(window->colours[1], 0);
auto colour = Colour::getShade(window->getColour(WindowColour::secondary), 0);
// Gfx::clear needs the colour copied to each byte of eax
Gfx::clear(*context, colour * 0x01010101);
@ -1331,13 +1331,13 @@ namespace OpenLoco::Ui::Windows::BuildVehicle
auto top = window->y + 69;
auto right = left + window->width - 187;
auto bottom = top;
Gfx::fillRect(context, left, top, right, bottom, Colour::getShade(window->colours[1], 7));
Gfx::fillRect(context, left, top, right, bottom, Colour::getShade(window->getColour(WindowColour::secondary), 7));
left = window->x + window->width - 187;
top = window->y + 41;
right = left;
bottom = top + 27;
Gfx::fillRect(context, left, top, right, bottom, Colour::getShade(window->colours[1], 7));
Gfx::fillRect(context, left, top, right, bottom, Colour::getShade(window->getColour(WindowColour::secondary), 7));
for (uint32_t tab = 0; tab < _numTrackTypeTabs; ++tab)
{
@ -1348,7 +1348,7 @@ namespace OpenLoco::Ui::Windows::BuildVehicle
top = widget.top + window->y + 26;
right = left + 29;
bottom = top;
Gfx::fillRect(context, left, top, right, bottom, Colour::getShade(window->colours[1], 5));
Gfx::fillRect(context, left, top, right, bottom, Colour::getShade(window->getColour(WindowColour::secondary), 5));
}
auto img = 0;

View File

@ -33,15 +33,15 @@ namespace OpenLoco::Ui::Windows::Cheats
};
}
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_25, 0, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, frameHeight - 41 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab)
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_25, WindowColour::primary, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, frameHeight - 41 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab)
constexpr uint64_t enabledWidgets = (1 << Widx::close_button) | (1 << Widx::tab_finances) | (1 << Widx::tab_companies) | (1 << Widx::tab_vehicles) | (1 << Widx::tab_towns);
@ -145,12 +145,12 @@ namespace OpenLoco::Ui::Windows::Cheats
static Widget _widgets[] = {
commonWidgets(windowSize.width, windowSize.height, StringIds::financial_cheats),
makeWidget({ 4, 48 }, { windowSize.width - 8, 33 }, WidgetType::groupbox, 1, StringIds::cheat_increase_funds),
makeStepperWidgets({ 80, 62 }, { 95, 12 }, WidgetType::wt_17, 1, StringIds::empty),
makeWidget({ 180, 62 }, { 60, 12 }, WidgetType::wt_11, 1, StringIds::cheat_add),
makeWidget({ 4, 86 }, { windowSize.width - 8, 33 }, WidgetType::groupbox, 1, StringIds::cheat_clear_loan),
makeWidget({ 80, 100 }, { 95, 12 }, WidgetType::wt_17, 1),
makeWidget({ 180, 100 }, { 60, 12 }, WidgetType::wt_11, 1, StringIds::cheat_clear),
makeWidget({ 4, 48 }, { windowSize.width - 8, 33 }, WidgetType::groupbox, WindowColour::secondary, StringIds::cheat_increase_funds),
makeStepperWidgets({ 80, 62 }, { 95, 12 }, WidgetType::wt_17, WindowColour::secondary, StringIds::empty),
makeWidget({ 180, 62 }, { 60, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::cheat_add),
makeWidget({ 4, 86 }, { windowSize.width - 8, 33 }, WidgetType::groupbox, WindowColour::secondary, StringIds::cheat_clear_loan),
makeWidget({ 80, 100 }, { 95, 12 }, WidgetType::wt_17, WindowColour::secondary),
makeWidget({ 180, 100 }, { 60, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::cheat_clear),
widgetEnd(),
};
@ -309,13 +309,13 @@ namespace OpenLoco::Ui::Windows::Cheats
static Widget _widgets[] = {
commonWidgets(windowSize.width, windowSize.height, StringIds::company_cheats),
makeWidget({ 4, 48 }, { windowSize.width - 8, 33 }, WidgetType::groupbox, 1, StringIds::cheat_select_target_company),
makeDropdownWidgets({ 10, 62 }, { windowSize.width - 20, 12 }, WidgetType::wt_17, 1),
makeWidget({ 4, 86 }, { windowSize.width - 8, 80 }, WidgetType::groupbox, 1, StringIds::cheat_select_cheat_to_apply),
makeWidget({ 10, 100 }, { windowSize.width - 20, 12 }, WidgetType::wt_11, 1, StringIds::cheat_switch_to_company),
makeWidget({ 10, 116 }, { windowSize.width - 20, 12 }, WidgetType::wt_11, 1, StringIds::cheat_acquire_company_assets),
makeWidget({ 10, 132 }, { windowSize.width - 20, 12 }, WidgetType::wt_11, 1, StringIds::cheat_toggle_bankruptcy),
makeWidget({ 10, 148 }, { windowSize.width - 20, 12 }, WidgetType::wt_11, 1, StringIds::cheat_toggle_jail_status),
makeWidget({ 4, 48 }, { windowSize.width - 8, 33 }, WidgetType::groupbox, WindowColour::secondary, StringIds::cheat_select_target_company),
makeDropdownWidgets({ 10, 62 }, { windowSize.width - 20, 12 }, WidgetType::wt_17, WindowColour::secondary),
makeWidget({ 4, 86 }, { windowSize.width - 8, 80 }, WidgetType::groupbox, WindowColour::secondary, StringIds::cheat_select_cheat_to_apply),
makeWidget({ 10, 100 }, { windowSize.width - 20, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::cheat_switch_to_company),
makeWidget({ 10, 116 }, { windowSize.width - 20, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::cheat_acquire_company_assets),
makeWidget({ 10, 132 }, { windowSize.width - 20, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::cheat_toggle_bankruptcy),
makeWidget({ 10, 148 }, { windowSize.width - 20, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::cheat_toggle_jail_status),
widgetEnd(),
};
@ -454,9 +454,9 @@ namespace OpenLoco::Ui::Windows::Cheats
static Widget _widgets[] = {
commonWidgets(windowSize.width, windowSize.height, StringIds::vehicle_cheats),
makeWidget({ 4, 48 }, { windowSize.width - 8, 49 }, WidgetType::groupbox, 1, StringIds::cheat_set_vehicle_reliability),
makeWidget({ 10, 62 }, { windowSize.width - 20, 12 }, WidgetType::wt_11, 1, StringIds::cheat_reliability_zero),
makeWidget({ 10, 78 }, { windowSize.width - 20, 12 }, WidgetType::wt_11, 1, StringIds::cheat_reliability_hundred),
makeWidget({ 4, 48 }, { windowSize.width - 8, 49 }, WidgetType::groupbox, WindowColour::secondary, StringIds::cheat_set_vehicle_reliability),
makeWidget({ 10, 62 }, { windowSize.width - 20, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::cheat_reliability_zero),
makeWidget({ 10, 78 }, { windowSize.width - 20, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::cheat_reliability_hundred),
widgetEnd(),
};
@ -543,11 +543,11 @@ namespace OpenLoco::Ui::Windows::Cheats
static Widget _widgets[] = {
commonWidgets(windowSize.width, windowSize.height, StringIds::town_cheats),
makeWidget({ 4, 48 }, { windowSize.width - 8, 49 }, WidgetType::groupbox, 1, StringIds::cheat_set_ratings),
makeWidget({ 10, 62 }, { (windowSize.width - 26) / 2, 12 }, WidgetType::wt_11, 1, StringIds::cheat_ratings_min_10pct),
makeWidget({ 3 + (windowSize.width / 2), 62 }, { (windowSize.width - 26) / 2, 12 }, WidgetType::wt_11, 1, StringIds::cheat_ratings_plus_10pct),
makeWidget({ 10, 78 }, { (windowSize.width - 26) / 2, 12 }, WidgetType::wt_11, 1, StringIds::cheat_ratings_to_min),
makeWidget({ 3 + (windowSize.width / 2), 78 }, { (windowSize.width - 26) / 2, 12 }, WidgetType::wt_11, 1, StringIds::cheat_ratings_to_max),
makeWidget({ 4, 48 }, { windowSize.width - 8, 49 }, WidgetType::groupbox, WindowColour::secondary, StringIds::cheat_set_ratings),
makeWidget({ 10, 62 }, { (windowSize.width - 26) / 2, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::cheat_ratings_min_10pct),
makeWidget({ 3 + (windowSize.width / 2), 62 }, { (windowSize.width - 26) / 2, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::cheat_ratings_plus_10pct),
makeWidget({ 10, 78 }, { (windowSize.width - 26) / 2, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::cheat_ratings_to_min),
makeWidget({ 3 + (windowSize.width / 2), 78 }, { (windowSize.width - 26) / 2, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::cheat_ratings_to_max),
widgetEnd(),
};
@ -649,8 +649,8 @@ namespace OpenLoco::Ui::Windows::Cheats
window->initScrollWidgets();
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = skin->colour_0B;
window->colours[1] = skin->colour_0C;
window->setColour(WindowColour::primary, skin->colour_0B);
window->setColour(WindowColour::secondary, skin->colour_0C);
return window;
}

View File

@ -40,12 +40,12 @@ namespace OpenLoco::Ui::Windows::CompanyFaceSelection
// 0x509680
static Widget widgets[] = {
makeWidget({ 0, 0 }, windowSize, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { 398, 13 }, WidgetType::caption_24, 0, StringIds::company_face_selection_title),
makeWidget({ 385, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { 400, 257 }, WidgetType::panel, 1),
makeWidget({ 4, 19 }, { 188, 248 }, WidgetType::scrollview, 1, Scrollbars::vertical, StringIds::tooltip_company_face_selection),
makeWidget({ 265, 23 }, { 66, 66 }, WidgetType::wt_5, 1),
makeWidget({ 0, 0 }, windowSize, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { 398, 13 }, WidgetType::caption_24, WindowColour::primary, StringIds::company_face_selection_title),
makeWidget({ 385, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { 400, 257 }, WidgetType::panel, WindowColour::secondary),
makeWidget({ 4, 19 }, { 188, 248 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical, StringIds::tooltip_company_face_selection),
makeWidget({ 265, 23 }, { 66, 66 }, WidgetType::wt_5, WindowColour::secondary),
widgetEnd(),
};
@ -102,7 +102,7 @@ namespace OpenLoco::Ui::Windows::CompanyFaceSelection
_9C68F2 = id;
self->owner = id;
const auto* skin = ObjectManager::get<InterfaceSkinObject>();
self->colours[1] = skin->colour_0A;
self->setColour(WindowColour::secondary, skin->colour_0A);
findAllInUseCompetitors(id);
self->row_count = _numberCompetitorObjects;
self->row_hover = -1;
@ -218,7 +218,7 @@ namespace OpenLoco::Ui::Windows::CompanyFaceSelection
}
{
const auto colour = Colour::getShade(self->colours[1], 0);
const auto colour = Colour::getShade(self->getColour(WindowColour::secondary), 0);
const auto l = self->x + 1 + self->widgets[widx::face_frame].left;
const auto t = self->y + 1 + self->widgets[widx::face_frame].top;
const auto r = self->x - 1 + self->widgets[widx::face_frame].right;
@ -248,7 +248,7 @@ namespace OpenLoco::Ui::Windows::CompanyFaceSelection
// 0x00435152
static void drawScroll(Window* const self, Gfx::Context* const context, const uint32_t scrollIndex)
{
Gfx::clearSingle(*context, Colour::getShade(self->colours[1], 4));
Gfx::clearSingle(*context, Colour::getShade(self->getColour(WindowColour::secondary), 4));
auto index = 0;
for (const auto& object : ObjectManager::getAvailableObjects(ObjectType::competitor))
@ -270,7 +270,7 @@ namespace OpenLoco::Ui::Windows::CompanyFaceSelection
if (isInUseCompetitor(object.first))
{
_currentFontSpriteBase = Font::m1;
stringColour = Colour::opaque(self->colours[1]) | (1 << 6);
stringColour = Colour::opaque(self->getColour(WindowColour::secondary)) | (1 << 6);
}
Gfx::drawString(context, 0, y - 1, stringColour, const_cast<char*>(name.c_str()));

View File

@ -72,18 +72,18 @@ namespace OpenLoco::Ui::Windows::CompanyList
const uint64_t enabledWidgets = (1 << widx::close_button) | (1 << widx::tab_company_list) | (1 << widx::tab_performance) | (1 << widx::tab_cargo_units) | (1 << widx::tab_cargo_distance) | (1 << widx::tab_values) | (1 << widx::tab_payment_rates) | (1 << widx::tab_speed_records);
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_25, 0, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 231 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tab_compare_companies), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tab_company_performance), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tab_cargo_graphs), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tab_cargo_distance_graphs), \
makeRemapWidget({ 127, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tab_company_values), \
makeRemapWidget({ 158, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tab_cargo_payment_rates), \
makeRemapWidget({ 189, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tab_speed_records)
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_25, WindowColour::primary, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 231 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tab_compare_companies), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tab_company_performance), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tab_cargo_graphs), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tab_cargo_distance_graphs), \
makeRemapWidget({ 127, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tab_company_values), \
makeRemapWidget({ 158, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tab_cargo_payment_rates), \
makeRemapWidget({ 189, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tab_speed_records)
static void onMouseUp(Window* self, WidgetIndex_t widgetIndex);
static void onUpdate(Window* self);
@ -117,11 +117,11 @@ namespace OpenLoco::Ui::Windows::CompanyList
Widget widgets[] = {
commonWidgets(640, 272, StringIds::title_company_list),
makeWidget({ 4, 43 }, { 175, 12 }, WidgetType::wt_14, 1, ImageIds::null, StringIds::tooltip_sort_company_name),
makeWidget({ 179, 43 }, { 210, 12 }, WidgetType::wt_14, 1, ImageIds::null, StringIds::tooltip_sort_company_status),
makeWidget({ 389, 43 }, { 145, 12 }, WidgetType::wt_14, 1, ImageIds::null, StringIds::tooltip_sort_company_performance),
makeWidget({ 534, 43 }, { 100, 12 }, WidgetType::wt_14, 1, ImageIds::null, StringIds::tooltip_sort_company_value),
makeWidget({ 3, 56 }, { 634, 201 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 4, 43 }, { 175, 12 }, WidgetType::wt_14, WindowColour::secondary, ImageIds::null, StringIds::tooltip_sort_company_name),
makeWidget({ 179, 43 }, { 210, 12 }, WidgetType::wt_14, WindowColour::secondary, ImageIds::null, StringIds::tooltip_sort_company_status),
makeWidget({ 389, 43 }, { 145, 12 }, WidgetType::wt_14, WindowColour::secondary, ImageIds::null, StringIds::tooltip_sort_company_performance),
makeWidget({ 534, 43 }, { 100, 12 }, WidgetType::wt_14, WindowColour::secondary, ImageIds::null, StringIds::tooltip_sort_company_value),
makeWidget({ 3, 56 }, { 634, 201 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
widgetEnd(),
};
@ -456,7 +456,7 @@ namespace OpenLoco::Ui::Windows::CompanyList
// 0x00435EA7
static void drawScroll(Window* self, Gfx::Context* context, uint32_t scrollIndex)
{
auto colour = Colour::getShade(self->colours[1], 3);
auto colour = Colour::getShade(self->getColour(WindowColour::secondary), 3);
Gfx::clearSingle(*context, colour);
auto yBottom = 0;
@ -604,8 +604,8 @@ namespace OpenLoco::Ui::Windows::CompanyList
Common::refreshCompanyList(window);
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = skin->colour_0B;
window->colours[1] = skin->colour_0C;
window->setColour(WindowColour::primary, skin->colour_0B);
window->setColour(WindowColour::secondary, skin->colour_0C);
window->var_854 = 0;
}
@ -1552,7 +1552,7 @@ namespace OpenLoco::Ui::Windows::CompanyList
else
imageId += performanceImageIds[0];
imageId = Gfx::recolour(imageId, self->colours[1]);
imageId = Gfx::recolour(imageId, self->getColour(WindowColour::secondary));
Widget::drawTab(self, context, imageId, widx::tab_performance);
}
@ -1576,7 +1576,7 @@ namespace OpenLoco::Ui::Windows::CompanyList
else
imageId += cargoUnitsImageIds[0];
imageId = Gfx::recolour(imageId, self->colours[1]);
imageId = Gfx::recolour(imageId, self->getColour(WindowColour::secondary));
Widget::drawTab(self, context, imageId, widx::tab_cargo_units);
}
@ -1600,7 +1600,7 @@ namespace OpenLoco::Ui::Windows::CompanyList
else
imageId += cargoDistanceImageIds[0];
imageId = Gfx::recolour(imageId, self->colours[1]);
imageId = Gfx::recolour(imageId, self->getColour(WindowColour::secondary));
Widget::drawTab(self, context, imageId, widx::tab_cargo_distance);
}
@ -1624,7 +1624,7 @@ namespace OpenLoco::Ui::Windows::CompanyList
else
imageId += companyValuesImageIds[0];
imageId = Gfx::recolour(imageId, self->colours[1]);
imageId = Gfx::recolour(imageId, self->getColour(WindowColour::secondary));
Widget::drawTab(self, context, imageId, widx::tab_values);
@ -1657,7 +1657,7 @@ namespace OpenLoco::Ui::Windows::CompanyList
uint32_t imageId = skin->img;
imageId += InterfaceSkin::ImageIds::tab_awards;
imageId = Gfx::recolour(imageId, self->colours[1]);
imageId = Gfx::recolour(imageId, self->getColour(WindowColour::secondary));
Widget::drawTab(self, context, imageId, widx::tab_speed_records);
}

View File

@ -46,18 +46,18 @@ namespace OpenLoco::Ui::Windows::CompanyWindow
constexpr uint64_t enabledWidgets = (1 << widx::caption) | (1 << widx::close_button) | (1 << widx::tab_status) | (1 << widx::tab_details) | (1 << widx::tab_colour_scheme) | (1 << widx::tab_finances) | (1 << widx::tab_cargo_delivered) | (1 << widx::tab_challenge);
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_24, 0, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 120 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_company_owner_and_status), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_company_headquarters_and_details), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_company_colour_scheme), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_company_finances), \
makeRemapWidget({ 127, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_cargo_delivered), \
makeRemapWidget({ 158, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_company_challenge_for_this_game), \
makeWidget({ 0, 14 }, { 26, 26 }, WidgetType::wt_9, 0, ImageIds::null, StringIds::tooltip_select_company)
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_24, WindowColour::primary, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 120 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_company_owner_and_status), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_company_headquarters_and_details), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_company_colour_scheme), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_company_finances), \
makeRemapWidget({ 127, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_cargo_delivered), \
makeRemapWidget({ 158, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_company_challenge_for_this_game), \
makeWidget({ 0, 14 }, { 26, 26 }, WidgetType::wt_9, WindowColour::primary, ImageIds::null, StringIds::tooltip_select_company)
// 0x004343FC
static void disableChallengeTab(Window* self)
@ -107,11 +107,11 @@ namespace OpenLoco::Ui::Windows::CompanyWindow
static Widget widgets[] = {
commonWidgets(270, 182, StringIds::title_company),
makeWidget({ 3, 160 }, { 242, 21 }, WidgetType::wt_13, 1),
makeWidget({ 3, 44 }, { 96, 120 }, WidgetType::viewport, 1, -2),
makeWidget({ 0, 0 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::null, StringIds::move_main_view_to_show_this),
makeWidget({ 178, 57 }, { 66, 66 }, WidgetType::wt_9, 1, ImageIds::null),
makeWidget({ 154, 124 }, { 112, 22 }, WidgetType::wt_9, 1, ImageIds::null, StringIds::tooltip_change_owner_name),
makeWidget({ 3, 160 }, { 242, 21 }, WidgetType::wt_13, WindowColour::secondary),
makeWidget({ 3, 44 }, { 96, 120 }, WidgetType::viewport, WindowColour::secondary, -2),
makeWidget({ 0, 0 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::null, StringIds::move_main_view_to_show_this),
makeWidget({ 178, 57 }, { 66, 66 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::null),
makeWidget({ 154, 124 }, { 112, 22 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::null, StringIds::tooltip_change_owner_name),
widgetEnd(),
};
@ -574,7 +574,7 @@ namespace OpenLoco::Ui::Windows::CompanyWindow
window->saved_view.clear();
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[1] = skin->colour_0A;
window->setColour(WindowColour::secondary, skin->colour_0A);
window->flags |= WindowFlags::resizable;
@ -651,9 +651,9 @@ namespace OpenLoco::Ui::Windows::CompanyWindow
static Widget widgets[] = {
commonWidgets(340, 194, StringIds::title_company_details),
makeWidget({ 219, 54 }, { 96, 120 }, WidgetType::viewport, 1, -2),
makeWidget({ 315, 92 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::null, StringIds::tooltip_build_or_move_headquarters),
makeWidget({ 0, 0 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::null, StringIds::move_main_view_to_show_this),
makeWidget({ 219, 54 }, { 96, 120 }, WidgetType::viewport, WindowColour::secondary, -2),
makeWidget({ 315, 92 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::null, StringIds::tooltip_build_or_move_headquarters),
makeWidget({ 0, 0 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::null, StringIds::move_main_view_to_show_this),
widgetEnd(),
};
@ -1167,38 +1167,38 @@ namespace OpenLoco::Ui::Windows::CompanyWindow
static Widget widgets[] = {
commonWidgets(265, 252, StringIds::title_company_colour_scheme),
makeWidget({ 15, 81 }, { 204, 12 }, WidgetType::checkbox, 1, StringIds::colour_steam_locomotives, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 98 }, { 204, 12 }, WidgetType::checkbox, 1, StringIds::colour_diesel_locomotives, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 115 }, { 204, 12 }, WidgetType::checkbox, 1, StringIds::colour_electric_locomotives, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 132 }, { 204, 12 }, WidgetType::checkbox, 1, StringIds::colour_multiple_units, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 149 }, { 204, 12 }, WidgetType::checkbox, 1, StringIds::colour_passenger_vehicles, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 166 }, { 204, 12 }, WidgetType::checkbox, 1, StringIds::colour_freight_vehicles, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 183 }, { 204, 12 }, WidgetType::checkbox, 1, StringIds::colour_buses, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 200 }, { 204, 12 }, WidgetType::checkbox, 1, StringIds::colour_trucks, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 217 }, { 204, 12 }, WidgetType::checkbox, 1, StringIds::colour_aircraft, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 234 }, { 204, 12 }, WidgetType::checkbox, 1, StringIds::colour_ships, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 221, 48 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 78 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 95 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 112 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 129 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 146 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 163 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 180 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 197 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 214 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 231 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 239, 48 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 78 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 95 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 112 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 129 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 146 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 163 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 180 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 197 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 214 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 231 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 15, 81 }, { 204, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::colour_steam_locomotives, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 98 }, { 204, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::colour_diesel_locomotives, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 115 }, { 204, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::colour_electric_locomotives, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 132 }, { 204, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::colour_multiple_units, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 149 }, { 204, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::colour_passenger_vehicles, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 166 }, { 204, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::colour_freight_vehicles, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 183 }, { 204, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::colour_buses, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 200 }, { 204, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::colour_trucks, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 217 }, { 204, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::colour_aircraft, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 15, 234 }, { 204, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::colour_ships, StringIds::tooltip_toggle_vehicle_colour_scheme),
makeWidget({ 221, 48 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 78 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 95 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 112 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 129 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 146 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 163 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 180 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 197 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 214 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 221, 231 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_main_colour),
makeWidget({ 239, 48 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 78 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 95 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 112 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 129 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 146 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 163 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 180 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 197 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 214 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_secondary_colour),
makeWidget({ 239, 231 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_secondary_colour),
widgetEnd(),
};
@ -1526,8 +1526,8 @@ namespace OpenLoco::Ui::Windows::CompanyWindow
static Widget widgets[] = {
commonWidgets(636, 319, StringIds::title_company_finances),
makeWidget({ 133, 45 }, { 499, 215 }, WidgetType::scrollview, 1, Scrollbars::horizontal),
makeStepperWidgets({ 87, 264 }, { 100, 12 }, WidgetType::wt_17, 1, StringIds::company_current_loan_value),
makeWidget({ 133, 45 }, { 499, 215 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::horizontal),
makeStepperWidgets({ 87, 264 }, { 100, 12 }, WidgetType::wt_17, WindowColour::secondary, StringIds::company_current_loan_value),
widgetEnd(),
};
@ -1627,7 +1627,7 @@ namespace OpenLoco::Ui::Windows::CompanyWindow
// Add zebra stripes to even labels.
if (i % 2 == 0)
{
auto colour = Colour::getShade(self->colours[1], 6) | 0x1000000;
auto colour = Colour::getShade(self->getColour(WindowColour::secondary), 6) | 0x1000000;
Gfx::fillRect(context, self->x + 4, y, self->x + 129, y + 9, colour);
}
@ -1797,7 +1797,7 @@ namespace OpenLoco::Ui::Windows::CompanyWindow
// Add zebra stripes to even labels.
if (i % 2 == 0)
{
auto colour = Colour::getShade(self->colours[1], 6) | 0x1000000;
auto colour = Colour::getShade(self->getColour(WindowColour::secondary), 6) | 0x1000000;
Gfx::fillRect(context, 0, y, expenditureColumnWidth * 17, y + 9, colour);
}
@ -2588,7 +2588,7 @@ namespace OpenLoco::Ui::Windows::CompanyWindow
// Details tab
{
const uint32_t imageId = Gfx::recolour(skin->img + InterfaceSkin::ImageIds::tab_company_details, self->colours[0]);
const uint32_t imageId = Gfx::recolour(skin->img + InterfaceSkin::ImageIds::tab_company_details, self->getColour(WindowColour::primary));
Widget::drawTab(self, context, imageId, widx::tab_details);
}

View File

@ -798,7 +798,7 @@ namespace OpenLoco::Ui::Windows::Construction
window->owner = _playerCompany;
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[1] = skin->colour_0D;
window->setColour(WindowColour::secondary, skin->colour_0D);
WindowManager::sub_4CEE0B(window);
Ui::Windows::showDirectionArrows();

View File

@ -94,15 +94,15 @@ namespace OpenLoco::Ui::Windows::Construction
tab_overhead,
};
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_24, 0, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, frameHeight - 41 }, WidgetType::wt_3, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tab_track_road_construction), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tab_station_construction), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tab_signal_construction), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tab_electrification_construction)
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_24, WindowColour::primary, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, frameHeight - 41 }, WidgetType::wt_3, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tab_track_road_construction), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tab_station_construction), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tab_signal_construction), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tab_electrification_construction)
constexpr uint64_t enabledWidgets = (1 << widx::caption) | (1 << widx::close_button) | (1 << widx::tab_construction) | (1 << widx::tab_station) | (1 << widx::tab_signal) | (1 << widx::tab_overhead);

View File

@ -71,29 +71,29 @@ namespace OpenLoco::Ui::Windows::Construction::Construction
Widget widgets[] = {
commonWidgets(138, 276, StringIds::stringid_2),
makeWidget({ 3, 45 }, { 22, 24 }, WidgetType::wt_9, 1, ImageIds::construction_left_hand_curve_very_small, StringIds::tooltip_left_hand_curve_very_small),
makeWidget({ 3, 45 }, { 22, 24 }, WidgetType::wt_9, 1, ImageIds::construction_left_hand_curve_small, StringIds::tooltip_left_hand_curve_small),
makeWidget({ 25, 45 }, { 22, 24 }, WidgetType::wt_9, 1, ImageIds::construction_left_hand_curve, StringIds::tooltip_left_hand_curve),
makeWidget({ 47, 45 }, { 22, 24 }, WidgetType::wt_9, 1, ImageIds::construction_left_hand_curve_large, StringIds::tooltip_left_hand_curve_large),
makeWidget({ 69, 45 }, { 22, 24 }, WidgetType::wt_9, 1, ImageIds::construction_right_hand_curve_large, StringIds::tooltip_right_hand_curve_large),
makeWidget({ 91, 45 }, { 22, 24 }, WidgetType::wt_9, 1, ImageIds::construction_right_hand_curve, StringIds::tooltip_right_hand_curve),
makeWidget({ 113, 45 }, { 22, 24 }, WidgetType::wt_9, 1, ImageIds::construction_right_hand_curve_small, StringIds::tooltip_right_hand_curve_small),
makeWidget({ 113, 45 }, { 22, 24 }, WidgetType::wt_9, 1, ImageIds::construction_right_hand_curve_very_small, StringIds::tooltip_right_hand_curve_very_small),
makeWidget({ 9, 69 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::construction_s_bend_dual_track_left, StringIds::tooltip_s_bend_left_dual_track),
makeWidget({ 33, 69 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::construction_s_bend_left, StringIds::tooltip_s_bend_left),
makeWidget({ 57, 69 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::construction_straight, StringIds::tooltip_straight),
makeWidget({ 81, 69 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::construction_s_bend_right, StringIds::tooltip_s_bend_right),
makeWidget({ 105, 69 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::construction_s_bend_dual_track_right, StringIds::tooltip_s_bend_right_dual_track),
makeWidget({ 9, 96 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::construction_steep_slope_down, StringIds::tooltip_steep_slope_down),
makeWidget({ 33, 96 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::construction_slope_down, StringIds::tooltip_slope_down),
makeWidget({ 57, 96 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::construction_level, StringIds::tooltip_level),
makeWidget({ 81, 96 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::construction_slope_up, StringIds::tooltip_slope_up),
makeWidget({ 105, 96 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::construction_steep_slope_up, StringIds::tooltip_steep_slope_up),
makeWidget({ 40, 123 }, { 58, 20 }, WidgetType::wt_18, 1, StringIds::empty, StringIds::tooltip_bridge_stats),
makeWidget({ 86, 124 }, { 11, 18 }, WidgetType::wt_11, 1, StringIds::dropdown, StringIds::tooltip_bridge_stats),
makeWidget({ 3, 145 }, { 132, 100 }, WidgetType::wt_5, 1, 0xFFFFFFFF, StringIds::tooltip_construct),
makeWidget({ 6, 248 }, { 46, 24 }, WidgetType::wt_9, 1, ImageIds::construction_remove, StringIds::tooltip_remove),
makeWidget({ 57, 248 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::rotate_object, StringIds::rotate_90),
makeWidget({ 3, 45 }, { 22, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_left_hand_curve_very_small, StringIds::tooltip_left_hand_curve_very_small),
makeWidget({ 3, 45 }, { 22, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_left_hand_curve_small, StringIds::tooltip_left_hand_curve_small),
makeWidget({ 25, 45 }, { 22, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_left_hand_curve, StringIds::tooltip_left_hand_curve),
makeWidget({ 47, 45 }, { 22, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_left_hand_curve_large, StringIds::tooltip_left_hand_curve_large),
makeWidget({ 69, 45 }, { 22, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_right_hand_curve_large, StringIds::tooltip_right_hand_curve_large),
makeWidget({ 91, 45 }, { 22, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_right_hand_curve, StringIds::tooltip_right_hand_curve),
makeWidget({ 113, 45 }, { 22, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_right_hand_curve_small, StringIds::tooltip_right_hand_curve_small),
makeWidget({ 113, 45 }, { 22, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_right_hand_curve_very_small, StringIds::tooltip_right_hand_curve_very_small),
makeWidget({ 9, 69 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_s_bend_dual_track_left, StringIds::tooltip_s_bend_left_dual_track),
makeWidget({ 33, 69 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_s_bend_left, StringIds::tooltip_s_bend_left),
makeWidget({ 57, 69 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_straight, StringIds::tooltip_straight),
makeWidget({ 81, 69 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_s_bend_right, StringIds::tooltip_s_bend_right),
makeWidget({ 105, 69 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_s_bend_dual_track_right, StringIds::tooltip_s_bend_right_dual_track),
makeWidget({ 9, 96 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_steep_slope_down, StringIds::tooltip_steep_slope_down),
makeWidget({ 33, 96 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_slope_down, StringIds::tooltip_slope_down),
makeWidget({ 57, 96 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_level, StringIds::tooltip_level),
makeWidget({ 81, 96 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_slope_up, StringIds::tooltip_slope_up),
makeWidget({ 105, 96 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_steep_slope_up, StringIds::tooltip_steep_slope_up),
makeWidget({ 40, 123 }, { 58, 20 }, WidgetType::wt_18, WindowColour::secondary, StringIds::empty, StringIds::tooltip_bridge_stats),
makeWidget({ 86, 124 }, { 11, 18 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown, StringIds::tooltip_bridge_stats),
makeWidget({ 3, 145 }, { 132, 100 }, WidgetType::wt_5, WindowColour::secondary, 0xFFFFFFFF, StringIds::tooltip_construct),
makeWidget({ 6, 248 }, { 46, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_remove, StringIds::tooltip_remove),
makeWidget({ 57, 248 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::rotate_object, StringIds::rotate_90),
widgetEnd(),
};
@ -1238,7 +1238,7 @@ namespace OpenLoco::Ui::Windows::Construction::Construction
auto width = 155;
auto height = widget.height();
Dropdown::show(x, y, width, height, self->colours[1], bridgeCount, 22, flags);
Dropdown::show(x, y, width, height, self->getColour(WindowColour::secondary), bridgeCount, 22, flags);
for (auto i = 0; i < 9; i++)
{
auto bridge = _bridgeList[i];

View File

@ -21,13 +21,13 @@ namespace OpenLoco::Ui::Windows::Construction::Overhead
Widget widgets[] = {
commonWidgets(138, 192, StringIds::stringid_2),
makeWidget({ 3, 45 }, { 132, 12 }, WidgetType::checkbox, 1, StringIds::empty, StringIds::tooltip_select_track_mod),
makeWidget({ 3, 57 }, { 132, 12 }, WidgetType::checkbox, 1, StringIds::empty, StringIds::tooltip_select_track_mod),
makeWidget({ 3, 69 }, { 132, 12 }, WidgetType::checkbox, 1, StringIds::empty, StringIds::tooltip_select_track_mod),
makeWidget({ 3, 81 }, { 132, 12 }, WidgetType::checkbox, 1, StringIds::empty, StringIds::tooltip_select_track_mod),
makeWidget({ 35, 110 }, { 66, 66 }, WidgetType::wt_3, 1),
makeWidget({ 3, 95 }, { 132, 12 }, WidgetType::wt_18, 1, 0xFFFFFFFF, StringIds::tooltip_select_track_to_upgrade),
makeWidget({ 123, 96 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown, StringIds::tooltip_select_track_to_upgrade),
makeWidget({ 3, 45 }, { 132, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::empty, StringIds::tooltip_select_track_mod),
makeWidget({ 3, 57 }, { 132, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::empty, StringIds::tooltip_select_track_mod),
makeWidget({ 3, 69 }, { 132, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::empty, StringIds::tooltip_select_track_mod),
makeWidget({ 3, 81 }, { 132, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::empty, StringIds::tooltip_select_track_mod),
makeWidget({ 35, 110 }, { 66, 66 }, WidgetType::wt_3, WindowColour::secondary),
makeWidget({ 3, 95 }, { 132, 12 }, WidgetType::wt_18, WindowColour::secondary, 0xFFFFFFFF, StringIds::tooltip_select_track_to_upgrade),
makeWidget({ 123, 96 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown, StringIds::tooltip_select_track_to_upgrade),
widgetEnd(),
};
@ -82,7 +82,7 @@ namespace OpenLoco::Ui::Windows::Construction::Overhead
auto width = widget.width() + 2;
auto height = widget.height();
Dropdown::show(xPos, yPos, width, height, self->colours[1], modCount, (1 << 7));
Dropdown::show(xPos, yPos, width, height, self->getColour(WindowColour::secondary), modCount, (1 << 7));
Dropdown::add(0, StringIds::single_section);
Dropdown::add(1, StringIds::block_section);

View File

@ -16,10 +16,10 @@ namespace OpenLoco::Ui::Windows::Construction::Signal
{
Widget widgets[] = {
commonWidgets(138, 167, StringIds::stringid_2),
makeWidget({ 3, 45 }, { 132, 12 }, WidgetType::wt_18, 1, 0xFFFFFFFF, StringIds::tooltip_select_signal_type),
makeWidget({ 123, 46 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown, StringIds::tooltip_select_signal_type),
makeWidget({ 27, 110 }, { 40, 40 }, WidgetType::wt_9, 1, 0xFFFFFFFF, StringIds::tooltip_signal_both_directions),
makeWidget({ 71, 110 }, { 40, 40 }, WidgetType::wt_9, 1, 0xFFFFFFFF, StringIds::tooltip_signal_single_direction),
makeWidget({ 3, 45 }, { 132, 12 }, WidgetType::wt_18, WindowColour::secondary, 0xFFFFFFFF, StringIds::tooltip_select_signal_type),
makeWidget({ 123, 46 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown, StringIds::tooltip_select_signal_type),
makeWidget({ 27, 110 }, { 40, 40 }, WidgetType::wt_9, WindowColour::secondary, 0xFFFFFFFF, StringIds::tooltip_signal_both_directions),
makeWidget({ 71, 110 }, { 40, 40 }, WidgetType::wt_9, WindowColour::secondary, 0xFFFFFFFF, StringIds::tooltip_signal_single_direction),
widgetEnd(),
};
@ -60,7 +60,7 @@ namespace OpenLoco::Ui::Windows::Construction::Signal
auto width = widget.width() + 2;
auto height = widget.height();
Dropdown::show(xPos, yPos, width, height, self->colours[1], signalCount, (1 << 7));
Dropdown::show(xPos, yPos, width, height, self->getColour(WindowColour::secondary), signalCount, (1 << 7));
for (auto signalIndex = 0; signalIndex < signalCount; signalIndex++)
{

View File

@ -23,10 +23,10 @@ namespace OpenLoco::Ui::Windows::Construction::Station
{
Widget widgets[] = {
commonWidgets(138, 190, StringIds::stringid_2),
makeWidget({ 3, 45 }, { 132, 12 }, WidgetType::wt_18, 1, 0xFFFFFFFF, StringIds::tooltip_select_station_type),
makeWidget({ 123, 46 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown, StringIds::tooltip_select_station_type),
makeWidget({ 35, 60 }, { 68, 68 }, WidgetType::wt_3, 1),
makeWidget({ 112, 104 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::rotate_object, StringIds::rotate_90),
makeWidget({ 3, 45 }, { 132, 12 }, WidgetType::wt_18, WindowColour::secondary, 0xFFFFFFFF, StringIds::tooltip_select_station_type),
makeWidget({ 123, 46 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown, StringIds::tooltip_select_station_type),
makeWidget({ 35, 60 }, { 68, 68 }, WidgetType::wt_3, WindowColour::secondary),
makeWidget({ 112, 104 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::rotate_object, StringIds::rotate_90),
widgetEnd(),
};
@ -87,7 +87,7 @@ namespace OpenLoco::Ui::Windows::Construction::Station
auto yPos = widget.top + self->y;
auto width = widget.width() + 2;
auto height = widget.height();
Dropdown::show(xPos, yPos, width, height, self->colours[1], stationCount, (1 << 7));
Dropdown::show(xPos, yPos, width, height, self->getColour(WindowColour::secondary), stationCount, (1 << 7));
if (_byte_1136063 & (1 << 7))
{
@ -300,7 +300,7 @@ namespace OpenLoco::Ui::Windows::Construction::Station
xPos = self->x + 3;
yPos = self->widgets[widx::image].bottom + self->y + 16;
auto width = self->width - 4;
Gfx::drawRectInset(context, xPos, yPos, width, 1, self->colours[1], (1 << 5));
Gfx::drawRectInset(context, xPos, yPos, width, 1, self->getColour(WindowColour::secondary), (1 << 5));
if (!(_byte_522096 & (1 << 3)))
return;

View File

@ -18,7 +18,7 @@ namespace OpenLoco::Ui::Windows::DragVehiclePart
// 0x00522504
static Widget widgets[] = {
makeWidget({ 0, 0 }, { 150, 60 }, WidgetType::wt_3, 0),
makeWidget({ 0, 0 }, { 150, 60 }, WidgetType::wt_3, WindowColour::primary),
widgetEnd()
};

View File

@ -22,10 +22,10 @@ namespace OpenLoco::Ui::Windows::EditKeyboardShortcut
static loco_global<uint8_t, 0x011364A4> _11364A4;
static Widget _widgets[] = {
makeWidget({ 0, 0 }, windowSize, WidgetType::frame, 0, 0xFFFFFFFF), // 0,
makeWidget({ 1, 1 }, { windowSize.width - 2, 13 }, WidgetType::caption_25, 0, StringIds::change_keyboard_shortcut), // 1,
makeWidget({ 265, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), // 2,
makeWidget({ 0, 15 }, { windowSize.width, 57 }, WidgetType::panel, 1, 0xFFFFFFFF), // 3,
makeWidget({ 0, 0 }, windowSize, WidgetType::frame, WindowColour::primary, 0xFFFFFFFF), // 0,
makeWidget({ 1, 1 }, { windowSize.width - 2, 13 }, WidgetType::caption_25, WindowColour::primary, StringIds::change_keyboard_shortcut), // 1,
makeWidget({ 265, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), // 2,
makeWidget({ 0, 15 }, { windowSize.width, 57 }, WidgetType::panel, WindowColour::secondary, 0xFFFFFFFF), // 3,
widgetEnd(),
};
@ -58,8 +58,8 @@ namespace OpenLoco::Ui::Windows::EditKeyboardShortcut
window->initScrollWidgets();
const auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = skin->colour_0B;
window->colours[1] = skin->colour_10;
window->setColour(WindowColour::primary, skin->colour_0B);
window->setColour(WindowColour::secondary, skin->colour_10);
return window;
}

View File

@ -40,7 +40,7 @@ namespace OpenLoco::Ui::Windows::Error
};
Widget widgets[] = {
makeWidget({ 0, 0 }, { 200, 42 }, WidgetType::wt_3, 0),
makeWidget({ 0, 0 }, { 200, 42 }, WidgetType::wt_3, WindowColour::primary),
widgetEnd(),
};
}
@ -54,8 +54,8 @@ namespace OpenLoco::Ui::Windows::Error
};
Widget widgets[] = {
makeWidget({ 0, 0 }, { 250, 70 }, WidgetType::wt_3, 0),
makeWidget({ 3, 3 }, { 64, 64 }, WidgetType::wt_3, 1),
makeWidget({ 0, 0 }, { 250, 70 }, WidgetType::wt_3, WindowColour::primary),
makeWidget({ 3, 3 }, { 64, 64 }, WidgetType::wt_3, WindowColour::secondary),
widgetEnd(),
};
}

View File

@ -43,13 +43,13 @@ namespace OpenLoco::Ui::Windows::IndustryList
const uint64_t enabledWidgets = (1 << widx::close_button) | (1 << widx::tab_industry_list) | (1 << widx::tab_new_industry);
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_25, 0, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 154 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_industries_list), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_fund_new_industries)
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_25, WindowColour::primary, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 154 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_industries_list), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_fund_new_industries)
static WindowEventList _events;
@ -80,10 +80,10 @@ namespace OpenLoco::Ui::Windows::IndustryList
Widget widgets[] = {
commonWidgets(600, 197, StringIds::title_industries),
makeWidget({ 4, 44 }, { 199, 11 }, WidgetType::wt_14, 1, ImageIds::null, StringIds::sort_industry_name),
makeWidget({ 204, 44 }, { 204, 11 }, WidgetType::wt_14, 1, ImageIds::null, StringIds::sort_industry_status),
makeWidget({ 444, 44 }, { 159, 11 }, WidgetType::wt_14, 1, ImageIds::null, StringIds::sort_industry_production_transported),
makeWidget({ 3, 56 }, { 593, 125 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 4, 44 }, { 199, 11 }, WidgetType::wt_14, WindowColour::secondary, ImageIds::null, StringIds::sort_industry_name),
makeWidget({ 204, 44 }, { 204, 11 }, WidgetType::wt_14, WindowColour::secondary, ImageIds::null, StringIds::sort_industry_status),
makeWidget({ 444, 44 }, { 159, 11 }, WidgetType::wt_14, WindowColour::secondary, ImageIds::null, StringIds::sort_industry_production_transported),
makeWidget({ 3, 56 }, { 593, 125 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
widgetEnd(),
};
@ -379,7 +379,7 @@ namespace OpenLoco::Ui::Windows::IndustryList
// 0x00457D2A
static void drawScroll(Ui::Window* self, Gfx::Context* context, uint32_t scrollIndex)
{
auto shade = Colour::getShade(self->colours[1], 4);
auto shade = Colour::getShade(self->getColour(WindowColour::secondary), 4);
Gfx::clearSingle(*context, shade);
uint16_t yPos = 0;
@ -543,8 +543,8 @@ namespace OpenLoco::Ui::Windows::IndustryList
window->flags |= WindowFlags::resizable;
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = skin->colour_0B;
window->colours[1] = skin->colour_0C;
window->setColour(WindowColour::primary, skin->colour_0B);
window->setColour(WindowColour::secondary, skin->colour_0C);
// 0x00457878 end
@ -585,7 +585,7 @@ namespace OpenLoco::Ui::Windows::IndustryList
Widget widgets[] = {
commonWidgets(577, 171, StringIds::title_fund_new_industries),
makeWidget({ 3, 45 }, { 549, 111 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 3, 45 }, { 549, 111 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
widgetEnd(),
};
@ -869,7 +869,7 @@ namespace OpenLoco::Ui::Windows::IndustryList
// 0x00458352
static void drawScroll(Ui::Window* self, Gfx::Context* context, uint32_t scrollIndex)
{
auto shade = Colour::getShade(self->colours[1], 4);
auto shade = Colour::getShade(self->getColour(WindowColour::secondary), 4);
Gfx::clearSingle(*context, shade);
loco_global<uint16_t, 0x00E0C3C6> word_E0C3C6;
@ -883,13 +883,13 @@ namespace OpenLoco::Ui::Windows::IndustryList
if (self->row_info[i] == self->var_846)
{
word_E0C3C6 = Colour::translucent_flag;
Gfx::drawRectInset(context, xPos, yPos, rowHeight, rowHeight, self->colours[1], Colour::translucent_flag);
Gfx::drawRectInset(context, xPos, yPos, rowHeight, rowHeight, self->getColour(WindowColour::secondary), Colour::translucent_flag);
}
}
else
{
word_E0C3C6 = Colour::translucent_flag | Colour::outline_flag;
Gfx::drawRectInset(context, xPos, yPos, rowHeight, rowHeight, self->colours[1], (Colour::translucent_flag | Colour::outline_flag));
Gfx::drawRectInset(context, xPos, yPos, rowHeight, rowHeight, self->getColour(WindowColour::secondary), (Colour::translucent_flag | Colour::outline_flag));
}
auto industryObj = ObjectManager::get<IndustryObject>(self->row_info[i]);

View File

@ -42,15 +42,15 @@ namespace OpenLoco::Ui::Windows::Industry
const uint64_t enabledWidgets = (1 << widx::caption) | (1 << widx::close_button) | (1 << widx::tab_industry) | (1 << widx::tab_production) | (1 << widx::tab_production_2) | (1 << widx::tab_transported);
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_25, 0, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 95 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_industry), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_production_graph), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_production_graph), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_statistics)
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_25, WindowColour::primary, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 95 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_industry), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_production_graph), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_production_graph), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_statistics)
// Defined at the bottom of this file.
static void prepareDraw(Window* self);
@ -84,10 +84,10 @@ namespace OpenLoco::Ui::Windows::Industry
static Widget widgets[] = {
commonWidgets(223, 137, StringIds::title_town),
makeWidget({ 3, 44 }, { 195, 80 }, WidgetType::viewport, 1, 0xFFFFFFFE),
makeWidget({ 3, 115 }, { 195, 21 }, WidgetType::wt_13, 1),
makeWidget({ 0, 0 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::null, StringIds::move_main_view_to_show_this),
makeWidget({ 198, 44 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::rubbish_bin, StringIds::demolish_this_industry),
makeWidget({ 3, 44 }, { 195, 80 }, WidgetType::viewport, WindowColour::secondary, 0xFFFFFFFE),
makeWidget({ 3, 115 }, { 195, 21 }, WidgetType::wt_13, WindowColour::secondary),
makeWidget({ 0, 0 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::null, StringIds::move_main_view_to_show_this),
makeWidget({ 198, 44 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::rubbish_bin, StringIds::demolish_this_industry),
widgetEnd(),
};
@ -313,8 +313,8 @@ namespace OpenLoco::Ui::Windows::Industry
auto skin = ObjectManager::get<InterfaceSkinObject>();
if (skin != nullptr)
{
window->colours[0] = skin->colour_0B;
window->colours[1] = skin->colour_0C;
window->setColour(WindowColour::primary, skin->colour_0B);
window->setColour(WindowColour::secondary, skin->colour_0C);
}
// 0x00456DBC end
@ -593,7 +593,7 @@ namespace OpenLoco::Ui::Windows::Industry
auto args = FormatArguments();
args.push(yTick);
Gfx::drawRect(context, self->x + 41, yPos, 239, 1, Colour::getShade(self->colours[1], 4));
Gfx::drawRect(context, self->x + 41, yPos, 239, 1, Colour::getShade(self->getColour(WindowColour::secondary), 4));
Gfx::drawString_494C78(*context, self->x + 39, yPos - 6, Colour::black, StringIds::population_graph_people, &args);
@ -623,7 +623,7 @@ namespace OpenLoco::Ui::Windows::Industry
Gfx::drawStringCentred(*context, xPos, yPos, Colour::black, StringIds::population_graph_year, &args);
}
Gfx::drawRect(context, xPos, yPos + 11, 1, self->height - 74, Colour::getShade(self->colours[1], 4));
Gfx::drawRect(context, xPos, yPos + 11, 1, self->height - 74, Colour::getShade(self->getColour(WindowColour::secondary), 4));
}
const auto history = productionTabWidx == widx::tab_production ? industry->history_1 : industry->history_2;
@ -638,7 +638,7 @@ namespace OpenLoco::Ui::Windows::Industry
{
if (yPos2 <= graphBottom)
{
Gfx::drawLine(context, xPos, yPos1, xPos + 1, yPos2, Colour::getShade(self->colours[1], 7));
Gfx::drawLine(context, xPos, yPos1, xPos + 1, yPos2, Colour::getShade(self->getColour(WindowColour::secondary), 7));
}
}
}
@ -840,7 +840,7 @@ namespace OpenLoco::Ui::Windows::Industry
if (industryObj->produced_cargo_type[productionTabNumber] != 0xFF)
{
imageId = Gfx::recolour(skin->img, self->colours[1]);
imageId = Gfx::recolour(skin->img, self->getColour(WindowColour::secondary));
if (self->current_tab == tab - widx::tab_industry)
imageId += productionTabImageIds[(self->frame_no / 4) % std::size(productionTabImageIds)];

View File

@ -20,12 +20,12 @@ namespace OpenLoco::Ui::Windows::KeyboardShortcuts
static WindowEventList _events;
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 360, 238 }, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { 358, 13 }, WidgetType::caption_25, 0, StringIds::keyboard_shortcuts),
makeWidget({ 345, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { 360, 223 }, WidgetType::panel, 1),
makeWidget({ 4, 19 }, { 352, 202 }, WidgetType::scrollview, 1, Scrollbars::vertical, StringIds::keyboard_shortcut_list_tip),
makeWidget({ 4, 223 }, { 150, 12 }, WidgetType::wt_11, 1, StringIds::reset_keys, StringIds::reset_keys_tip),
makeWidget({ 0, 0 }, { 360, 238 }, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { 358, 13 }, WidgetType::caption_25, WindowColour::primary, StringIds::keyboard_shortcuts),
makeWidget({ 345, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { 360, 223 }, WidgetType::panel, WindowColour::secondary),
makeWidget({ 4, 19 }, { 352, 202 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical, StringIds::keyboard_shortcut_list_tip),
makeWidget({ 4, 223 }, { 150, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::reset_keys, StringIds::reset_keys_tip),
widgetEnd(),
};
@ -81,8 +81,8 @@ namespace OpenLoco::Ui::Windows::KeyboardShortcuts
window->initScrollWidgets();
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = skin->colour_0B;
window->colours[1] = skin->colour_10;
window->setColour(WindowColour::primary, skin->colour_0B);
window->setColour(WindowColour::secondary, skin->colour_10);
window->row_count = static_cast<uint16_t>(ShortcutManager::count());
window->row_hover = -1;
@ -100,7 +100,7 @@ namespace OpenLoco::Ui::Windows::KeyboardShortcuts
// 0x004BE72C
static void drawScroll(Ui::Window* self, Gfx::Context* context, uint32_t scrollIndex)
{
auto colour = self->colours[1];
auto colour = self->getColour(WindowColour::secondary);
auto shade = Colour::getShade(colour, 4);
Gfx::clearSingle(*context, shade);

View File

@ -51,16 +51,16 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
const uint64_t enabled_widgets = (1 << widx::close_button) | (1 << tab_options) | (1 << tab_land) | (1 << tab_forests) | (1 << tab_towns) | (1 << tab_industries);
#define common_options_widgets(frame_height, window_caption_id) \
makeWidget({ 0, 0 }, { 366, frame_height }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { 364, 13 }, WidgetType::caption_25, 0, window_caption_id), \
makeWidget({ 351, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { 366, 175 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_landscape_generation_options), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_landscape_generation_land), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_landscape_generation_forests), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_landscape_generation_towns), \
makeRemapWidget({ 127, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_landscape_generation_industries)
#define common_options_widgets(frame_height, window_caption_id) \
makeWidget({ 0, 0 }, { 366, frame_height }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { 364, 13 }, WidgetType::caption_25, WindowColour::primary, window_caption_id), \
makeWidget({ 351, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { 366, 175 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_landscape_generation_options), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_landscape_generation_land), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_landscape_generation_forests), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_landscape_generation_towns), \
makeRemapWidget({ 127, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_landscape_generation_industries)
// Defined at the bottom of this file.
static void initEvents();
@ -162,9 +162,9 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
static Widget widgets[] = {
common_options_widgets(217, StringIds::title_landscape_generation_options),
makeStepperWidgets({ 256, 52 }, { 100, 12 }, WidgetType::wt_18, 1, StringIds::start_year_value),
makeWidget({ 10, 68 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::label_generate_random_landscape_when_game_starts, StringIds::tooltip_generate_random_landscape_when_game_starts),
makeWidget({ 196, 200 }, { 160, 12 }, WidgetType::wt_11, 1, StringIds::button_generate_landscape, StringIds::tooltip_generate_random_landscape),
makeStepperWidgets({ 256, 52 }, { 100, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::start_year_value),
makeWidget({ 10, 68 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::label_generate_random_landscape_when_game_starts, StringIds::tooltip_generate_random_landscape_when_game_starts),
makeWidget({ 196, 200 }, { 160, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::button_generate_landscape, StringIds::tooltip_generate_random_landscape),
widgetEnd()
};
@ -313,8 +313,8 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
window->row_hover = -1;
auto interface = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = interface->colour_0B;
window->colours[1] = interface->colour_0E;
window->setColour(WindowColour::primary, interface->colour_0B);
window->setColour(WindowColour::secondary, interface->colour_0E);
}
// End of 0x0043DAEA
@ -359,13 +359,13 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
static Widget widgets[] = {
common_options_widgets(247, StringIds::title_landscape_generation_land),
makeDropdownWidgets({ 176, 52 }, { 180, 12 }, WidgetType::wt_18, 1),
makeStepperWidgets({ 256, 67 }, { 100, 12 }, WidgetType::wt_18, 1, StringIds::sea_level_units),
makeStepperWidgets({ 256, 82 }, { 100, 12 }, WidgetType::wt_18, 1, StringIds::min_land_height_units),
makeDropdownWidgets({ 176, 97 }, { 180, 12 }, WidgetType::wt_18, 1),
makeStepperWidgets({ 256, 112 }, { 100, 12 }, WidgetType::wt_18, 1, StringIds::hill_density_percent),
makeWidget({ 10, 128 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::create_hills_right_up_to_edge_of_map),
makeWidget({ 4, 142 }, { 358, 100 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeDropdownWidgets({ 176, 52 }, { 180, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeStepperWidgets({ 256, 67 }, { 100, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::sea_level_units),
makeStepperWidgets({ 256, 82 }, { 100, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::min_land_height_units),
makeDropdownWidgets({ 176, 97 }, { 180, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeStepperWidgets({ 256, 112 }, { 100, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::hill_density_percent),
makeWidget({ 10, 128 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::create_hills_right_up_to_edge_of_map),
makeWidget({ 4, 142 }, { 358, 100 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
widgetEnd()
};
@ -443,7 +443,7 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
Gfx::drawString_494BBF(*context, 24, yPos + 5, 121, Colour::black, StringIds::wcolour2_stringid, &*commonFormatArgs);
// Draw rectangle.
Gfx::fillRectInset(context, 150, yPos + 5, 340, yPos + 16, window->colours[1], 0b110000);
Gfx::fillRectInset(context, 150, yPos + 5, 340, yPos + 16, window->getColour(WindowColour::secondary), 0b110000);
// Draw current distribution setting.
const string_id distributionId = landDistributionLabelIds[S5::getOptions().landDistributionPatterns[i]];
@ -452,7 +452,7 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
// Draw rectangle (knob).
const uint8_t flags = window->row_hover == i ? 0b110000 : 0;
Gfx::fillRectInset(context, 329, yPos + 6, 339, yPos + 15, window->colours[1], flags);
Gfx::fillRectInset(context, 329, yPos + 6, 339, yPos + 15, window->getColour(WindowColour::secondary), flags);
// Draw triangle (knob).
Gfx::drawString_494B3F(*context, 330, yPos + 6, Colour::black, StringIds::dropdown, nullptr);
@ -546,7 +546,7 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
case widx::generator_btn:
{
Widget& target = window->widgets[widx::generator];
Dropdown::show(window->x + target.left, window->y + target.top, target.width() - 4, target.height(), window->colours[1], std::size(generatorIds), 0x80);
Dropdown::show(window->x + target.left, window->y + target.top, target.width() - 4, target.height(), window->getColour(WindowColour::secondary), std::size(generatorIds), 0x80);
for (size_t i = 0; i < std::size(generatorIds); i++)
Dropdown::add(i, generatorIds[i]);
@ -558,7 +558,7 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
case widx::topography_style_btn:
{
Widget& target = window->widgets[widx::topography_style];
Dropdown::show(window->x + target.left, window->y + target.top, target.width() - 4, target.height(), window->colours[1], std::size(topographyStyleIds), 0x80);
Dropdown::show(window->x + target.left, window->y + target.top, target.width() - 4, target.height(), window->getColour(WindowColour::secondary), std::size(topographyStyleIds), 0x80);
for (size_t i = 0; i < std::size(topographyStyleIds); i++)
Dropdown::add(i, topographyStyleIds[i]);
@ -642,7 +642,7 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
const Widget& target = window->widgets[widx::scrollview];
const int16_t dropdownX = window->x + target.left + 151;
const int16_t dropdownY = window->y + target.top + 6 + landIndex * rowHeight - window->scroll_areas[0].contentOffsetY;
Dropdown::show(dropdownX, dropdownY, 188, 12, window->colours[1], std::size(landDistributionLabelIds), 0x80);
Dropdown::show(dropdownX, dropdownY, 188, 12, window->getColour(WindowColour::secondary), std::size(landDistributionLabelIds), 0x80);
for (size_t i = 0; i < std::size(landDistributionLabelIds); i++)
Dropdown::add(i, StringIds::dropdown_stringid, landDistributionLabelIds[i]);
@ -741,14 +741,14 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
static Widget widgets[] = {
common_options_widgets(217, StringIds::title_landscape_generation_forests),
makeStepperWidgets({ 256, 52 }, { 100, 12 }, WidgetType::wt_18, 1, StringIds::number_of_forests_value),
makeStepperWidgets({ 256, 67 }, { 100, 12 }, WidgetType::wt_18, 1, StringIds::min_forest_radius_blocks),
makeStepperWidgets({ 256, 82 }, { 100, 12 }, WidgetType::wt_18, 1, StringIds::max_forest_radius_blocks),
makeStepperWidgets({ 256, 97 }, { 100, 12 }, WidgetType::wt_18, 1, StringIds::min_forest_density_percent),
makeStepperWidgets({ 256, 112 }, { 100, 12 }, WidgetType::wt_18, 1, StringIds::max_forest_density_percent),
makeStepperWidgets({ 256, 127 }, { 100, 12 }, WidgetType::wt_18, 1, StringIds::number_random_trees_value),
makeStepperWidgets({ 256, 142 }, { 100, 12 }, WidgetType::wt_18, 1, StringIds::min_altitude_for_trees_height),
makeStepperWidgets({ 256, 157 }, { 100, 12 }, WidgetType::wt_18, 1, StringIds::max_altitude_for_trees_height),
makeStepperWidgets({ 256, 52 }, { 100, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::number_of_forests_value),
makeStepperWidgets({ 256, 67 }, { 100, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::min_forest_radius_blocks),
makeStepperWidgets({ 256, 82 }, { 100, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::max_forest_radius_blocks),
makeStepperWidgets({ 256, 97 }, { 100, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::min_forest_density_percent),
makeStepperWidgets({ 256, 112 }, { 100, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::max_forest_density_percent),
makeStepperWidgets({ 256, 127 }, { 100, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::number_random_trees_value),
makeStepperWidgets({ 256, 142 }, { 100, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::min_altitude_for_trees_height),
makeStepperWidgets({ 256, 157 }, { 100, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::max_altitude_for_trees_height),
widgetEnd()
};
@ -985,9 +985,9 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
static Widget widgets[] = {
common_options_widgets(217, StringIds::title_landscape_generation_towns),
makeStepperWidgets({ 256, 52 }, { 100, 12 }, WidgetType::wt_18, 1, StringIds::number_of_towns_value),
makeWidget({ 176, 67 }, { 180, 12 }, WidgetType::wt_18, 1),
makeWidget({ 344, 68 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeStepperWidgets({ 256, 52 }, { 100, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::number_of_towns_value),
makeWidget({ 176, 67 }, { 180, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeWidget({ 344, 68 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
widgetEnd()
};
@ -1060,7 +1060,7 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
case widx::max_town_size_btn:
{
Widget& target = window->widgets[widx::max_town_size];
Dropdown::show(window->x + target.left, window->y + target.top, target.width() - 4, target.height(), window->colours[1], std::size(townSizeLabels), 0x80);
Dropdown::show(window->x + target.left, window->y + target.top, target.width() - 4, target.height(), window->getColour(WindowColour::secondary), std::size(townSizeLabels), 0x80);
for (size_t i = 0; i < std::size(townSizeLabels); i++)
Dropdown::add(i, townSizeLabels[i]);
@ -1126,10 +1126,10 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
static Widget widgets[] = {
common_options_widgets(217, StringIds::title_landscape_generation_industries),
makeWidget({ 176, 52 }, { 180, 12 }, WidgetType::wt_18, 1),
makeWidget({ 344, 53 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 10, 68 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::allow_industries_to_close_down_during_game),
makeWidget({ 10, 83 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::allow_new_industries_to_start_up_during_game),
makeWidget({ 176, 52 }, { 180, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeWidget({ 344, 53 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 10, 68 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::allow_industries_to_close_down_during_game),
makeWidget({ 10, 83 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::allow_new_industries_to_start_up_during_game),
widgetEnd()
};
@ -1171,7 +1171,7 @@ namespace OpenLoco::Ui::Windows::LandscapeGeneration
return;
Widget& target = window->widgets[widx::num_industries];
Dropdown::show(window->x + target.left, window->y + target.top, target.width() - 4, target.height(), window->colours[1], std::size(numIndustriesLabels), 0x80);
Dropdown::show(window->x + target.left, window->y + target.top, target.width() - 4, target.height(), window->getColour(WindowColour::secondary), std::size(numIndustriesLabels), 0x80);
for (size_t i = 0; i < std::size(numIndustriesLabels); i++)
Dropdown::add(i, numIndustriesLabels[i]);

View File

@ -25,11 +25,11 @@ namespace OpenLoco::Ui::Windows::LandscapeGenerationConfirm
};
static Widget widgets[] = {
makeWidget({ 0, 0 }, { 280, 92 }, WidgetType::panel, 0),
makeWidget({ 1, 1 }, { 278, 13 }, WidgetType::caption_22, 0),
makeWidget({ 267, 2 }, { 11, 11 }, WidgetType::wt_11, 0, StringIds::close_window_cross, StringIds::tooltip_close_window),
makeWidget({ 20, 77 }, { 100, 12 }, WidgetType::wt_11, 0, StringIds::label_ok),
makeWidget({ 160, 77 }, { 100, 12 }, WidgetType::wt_11, 0, StringIds::label_button_cancel),
makeWidget({ 0, 0 }, { 280, 92 }, WidgetType::panel, WindowColour::primary),
makeWidget({ 1, 1 }, { 278, 13 }, WidgetType::caption_22, WindowColour::primary),
makeWidget({ 267, 2 }, { 11, 11 }, WidgetType::wt_11, WindowColour::primary, StringIds::close_window_cross, StringIds::tooltip_close_window),
makeWidget({ 20, 77 }, { 100, 12 }, WidgetType::wt_11, WindowColour::primary, StringIds::label_ok),
makeWidget({ 160, 77 }, { 100, 12 }, WidgetType::wt_11, WindowColour::primary, StringIds::label_button_cancel),
widgetEnd()
};
@ -86,8 +86,8 @@ namespace OpenLoco::Ui::Windows::LandscapeGenerationConfirm
window->widgets = widgets;
window->enabled_widgets = (1 << widx::close_button) | (1 << widx::button_ok) | (1 << widx::button_cancel);
window->initScrollWidgets();
window->colours[0] = Colour::translucent(Colour::salmon_pink);
window->colours[1] = Colour::translucent(Colour::salmon_pink);
window->setColour(WindowColour::primary, Colour::translucent(Colour::salmon_pink));
window->setColour(WindowColour::secondary, Colour::translucent(Colour::salmon_pink));
window->flags |= WindowFlags::transparent;
// TODO(avgeffen): only needs to be called once.

View File

@ -20,7 +20,7 @@ namespace OpenLoco::Ui::Windows::Main
}
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 0, 0 }, WidgetType::viewport, 0, 0xFFFFFFFE),
makeWidget({ 0, 0 }, { 0, 0 }, WidgetType::viewport, WindowColour::primary, 0xFFFFFFFE),
widgetEnd(),
};

View File

@ -91,17 +91,17 @@ namespace OpenLoco::Ui::Windows::MapWindow
const uint64_t enabledWidgets = (1 << closeButton) | (1 << tabOverall) | (1 << tabVehicles) | (1 << tabIndustries) | (1 << tabRoutes) | (1 << tabOwnership);
Widget widgets[] = {
makeWidget({ 0, 0 }, { 350, 272 }, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { 348, 13 }, WidgetType::caption_25, 0),
makeWidget({ 335, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 41 }, { 350, 230 }, WidgetType::panel, 1),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_6, 1, ImageIds::tab, StringIds::tab_map_overall),
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_6, 1, ImageIds::tab, StringIds::tab_map_vehicles),
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_6, 1, ImageIds::tab, StringIds::tab_map_industries),
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_6, 1, ImageIds::tab, StringIds::tab_map_routes),
makeRemapWidget({ 158, 15 }, { 31, 27 }, WidgetType::wt_6, 1, ImageIds::tab, StringIds::tab_map_ownership),
makeWidget({ 3, 44 }, { 240, 215 }, WidgetType::scrollview, 1, Scrollbars::horizontal | Scrollbars::vertical),
makeWidget({ 3, 250 }, { 322, 21 }, WidgetType::wt_13, 1),
makeWidget({ 0, 0 }, { 350, 272 }, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { 348, 13 }, WidgetType::caption_25, WindowColour::primary),
makeWidget({ 335, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 41 }, { 350, 230 }, WidgetType::panel, WindowColour::secondary),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_6, WindowColour::secondary, ImageIds::tab, StringIds::tab_map_overall),
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_6, WindowColour::secondary, ImageIds::tab, StringIds::tab_map_vehicles),
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_6, WindowColour::secondary, ImageIds::tab, StringIds::tab_map_industries),
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_6, WindowColour::secondary, ImageIds::tab, StringIds::tab_map_routes),
makeRemapWidget({ 158, 15 }, { 31, 27 }, WidgetType::wt_6, WindowColour::secondary, ImageIds::tab, StringIds::tab_map_ownership),
makeWidget({ 3, 44 }, { 240, 215 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::horizontal | Scrollbars::vertical),
makeWidget({ 3, 250 }, { 322, 21 }, WidgetType::wt_13, WindowColour::secondary),
widgetEnd()
};
@ -1505,8 +1505,8 @@ namespace OpenLoco::Ui::Windows::MapWindow
}
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = skin->colour_0B;
window->colours[1] = skin->colour_0F;
window->setColour(WindowColour::primary, skin->colour_0B);
window->setColour(WindowColour::secondary, skin->colour_0F);
window->var_846 = getCurrentRotation();

View File

@ -46,13 +46,13 @@ namespace OpenLoco::Ui::Windows::MessageWindow
const uint64_t enabledWidgets = (1 << widx::close_button) | (1 << widx::tab_messages) | (1 << widx::tab_settings);
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_24, 0, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { 366, 175 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_recent_messages), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_message_options)
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_24, WindowColour::primary, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { 366, 175 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_recent_messages), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_message_options)
static WindowEventList _events;
@ -78,7 +78,7 @@ namespace OpenLoco::Ui::Windows::MessageWindow
Widget widgets[] = {
commonWidgets(366, 217, StringIds::title_messages),
makeWidget({ 3, 45 }, { 360, 146 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 3, 45 }, { 360, 146 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
widgetEnd(),
};
@ -217,7 +217,7 @@ namespace OpenLoco::Ui::Windows::MessageWindow
// 0x0042A5D7
static void drawScroll(Ui::Window* self, Gfx::Context* context, uint32_t scrollIndex)
{
auto colour = Colour::getShade(self->colours[1], 4);
auto colour = Colour::getShade(self->getColour(WindowColour::secondary), 4);
Gfx::clearSingle(*context, colour);
@ -341,7 +341,7 @@ namespace OpenLoco::Ui::Windows::MessageWindow
window->owner = _playerCompany;
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[1] = skin->colour_0A;
window->setColour(WindowColour::secondary, skin->colour_0A);
window->width = Messages::minWindowSize.width;
window->height = Messages::minWindowSize.height;
@ -399,18 +399,18 @@ namespace OpenLoco::Ui::Windows::MessageWindow
Widget widgets[] = {
commonWidgets(366, 217, StringIds::title_messages),
makeWidget({ 236, 47 }, { 124, 12 }, WidgetType::wt_18, 1),
makeWidget({ 348, 48 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 236, 62 }, { 124, 12 }, WidgetType::wt_18, 1),
makeWidget({ 348, 63 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 236, 77 }, { 124, 12 }, WidgetType::wt_18, 1),
makeWidget({ 348, 78 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 236, 92 }, { 124, 12 }, WidgetType::wt_18, 1),
makeWidget({ 348, 93 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 236, 107 }, { 124, 12 }, WidgetType::wt_18, 1),
makeWidget({ 348, 108 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 236, 122 }, { 124, 12 }, WidgetType::wt_18, 1),
makeWidget({ 348, 123 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 236, 47 }, { 124, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeWidget({ 348, 48 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 236, 62 }, { 124, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeWidget({ 348, 63 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 236, 77 }, { 124, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeWidget({ 348, 78 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 236, 92 }, { 124, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeWidget({ 348, 93 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 236, 107 }, { 124, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeWidget({ 348, 108 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 236, 122 }, { 124, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeWidget({ 348, 123 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
widgetEnd(),
};
@ -457,7 +457,7 @@ namespace OpenLoco::Ui::Windows::MessageWindow
auto height = widget.height() + 2;
auto flags = 1 << 7;
Dropdown::show(xPos, yPos, width, height, self->colours[1], 3, flags);
Dropdown::show(xPos, yPos, width, height, self->getColour(WindowColour::secondary), 3, flags);
Dropdown::add(0, StringIds::dropdown_stringid, StringIds::message_off);
Dropdown::add(1, StringIds::dropdown_stringid, StringIds::message_ticker);

View File

@ -29,11 +29,11 @@ namespace OpenLoco::Ui::Windows::MusicSelection
};
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 360, 238 }, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { 358, 13 }, WidgetType::caption_25, 0, StringIds::music_selection_title),
makeWidget({ 345, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { 360, 223 }, WidgetType::panel, 1),
makeWidget({ 4, 19 }, { 352, 218 }, WidgetType::scrollview, 1, Scrollbars::vertical, StringIds::music_selection_tooltip),
makeWidget({ 0, 0 }, { 360, 238 }, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { 358, 13 }, WidgetType::caption_25, WindowColour::primary, StringIds::music_selection_title),
makeWidget({ 345, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { 360, 223 }, WidgetType::panel, WindowColour::secondary),
makeWidget({ 4, 19 }, { 352, 218 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical, StringIds::music_selection_tooltip),
widgetEnd(),
};
@ -81,8 +81,8 @@ namespace OpenLoco::Ui::Windows::MusicSelection
window->initScrollWidgets();
auto interface = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = interface->colour_0B;
window->colours[1] = interface->colour_10;
window->setColour(WindowColour::primary, interface->colour_0B);
window->setColour(WindowColour::secondary, interface->colour_10);
window->row_count = Audio::num_music_tracks;
window->row_hover = -1;
@ -100,7 +100,7 @@ namespace OpenLoco::Ui::Windows::MusicSelection
// 0x004C1663
static void drawScroll(Ui::Window* window, Gfx::Context* context, uint32_t scrollIndex)
{
auto shade = Colour::getShade(window->colours[1], 4);
auto shade = Colour::getShade(window->getColour(WindowColour::secondary), 4);
Gfx::clearSingle(*context, shade);
auto config = Config::get();
@ -118,15 +118,15 @@ namespace OpenLoco::Ui::Windows::MusicSelection
}
// Draw checkbox.
Gfx::fillRectInset(context, 2, y, 11, y + 10, window->colours[1], 0xE0);
Gfx::fillRectInset(context, 2, y, 11, y + 10, window->getColour(WindowColour::secondary), 0xE0);
// Draw checkmark if track is enabled.
if (config.enabled_music[i])
Gfx::drawString_494B3F(*context, 2, y, window->colours[1], StringIds::wcolour2_stringid, (void*)&StringIds::checkmark);
Gfx::drawString_494B3F(*context, 2, y, window->getColour(WindowColour::secondary), StringIds::wcolour2_stringid, (void*)&StringIds::checkmark);
// Draw track name.
string_id music_title_id = Audio::getMusicInfo(i)->title_id;
Gfx::drawString_494B3F(*context, 15, y, window->colours[1], text_colour_id, (void*)&music_title_id);
Gfx::drawString_494B3F(*context, 15, y, window->getColour(WindowColour::secondary), text_colour_id, (void*)&music_title_id);
y += rowHeight;
}

View File

@ -36,7 +36,7 @@ namespace OpenLoco::Ui::Windows::NewsWindow
Common::initEvents();
window->initScrollWidgets();
window->colours[0] = colour;
window->setColour(WindowColour::primary, colour);
_dword_525CD0 = 0xFFFFFFFF;
_dword_525CD4 = 0xFFFFFFFF;
@ -141,7 +141,7 @@ namespace OpenLoco::Ui::Windows::NewsWindow
window->initScrollWidgets();
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = Colour::translucent(skin->colour_0C);
window->setColour(WindowColour::primary, Colour::translucent(skin->colour_0C));
window->var_852 = 0;

View File

@ -52,13 +52,13 @@ namespace OpenLoco::Ui::Windows::NewsWindow
constexpr uint64_t enabledWidgets = (1 << close_button) | (1 << viewport1Button) | (1 << viewport2Button);
#define commonWidgets(frameWidth, frameHeight, frameType) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, frameType, 0), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 2, frameHeight - 73 }, { 168, 64 }, WidgetType::viewport, 0, 0xFFFFFFFE), \
makeWidget({ 180, frameHeight - 73 }, { 168, 64 }, WidgetType::viewport, 0, 0xFFFFFFFE), \
makeWidget({ 2, frameHeight - 75 }, { 180, 75 }, WidgetType::wt_9, 0), \
makeWidget({ 2, frameHeight - 75 }, { 180, 75 }, WidgetType::wt_9, 0)
#define commonWidgets(frameWidth, frameHeight, frameType) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, frameType, WindowColour::primary), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 2, frameHeight - 73 }, { 168, 64 }, WidgetType::viewport, WindowColour::primary, 0xFFFFFFFE), \
makeWidget({ 180, frameHeight - 73 }, { 168, 64 }, WidgetType::viewport, WindowColour::primary, 0xFFFFFFFE), \
makeWidget({ 2, frameHeight - 75 }, { 180, 75 }, WidgetType::wt_9, WindowColour::primary), \
makeWidget({ 2, frameHeight - 75 }, { 180, 75 }, WidgetType::wt_9, WindowColour::primary)
void initEvents();
}

View File

@ -11,7 +11,7 @@ using namespace OpenLoco::Interop;
namespace OpenLoco::Ui::Windows::NewsWindow::Ticker
{
Widget widgets[] = {
makeWidget({ 0, 0 }, { 111, 26 }, WidgetType::wt_3, 0),
makeWidget({ 0, 0 }, { 111, 26 }, WidgetType::wt_3, WindowColour::primary),
widgetEnd(),
};

View File

@ -84,14 +84,14 @@ namespace OpenLoco::Ui::Windows::ObjectSelectionWindow
};
Widget widgets[] = {
makeWidget({ 0, 0 }, { 600, 398 }, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { 598, 13 }, WidgetType::caption_25, 0, StringIds::title_object_selection),
makeWidget({ 585, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 65 }, { 600, 333 }, WidgetType::panel, 1),
makeWidget({ 3, 15 }, { 589, 50 }, WidgetType::wt_5, 1),
makeWidget({ 470, 20 }, { 122, 12 }, WidgetType::wt_11, 0, StringIds::object_selection_advanced, StringIds::object_selection_advanced_tooltip),
makeWidget({ 4, 68 }, { 288, 317 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 391, 68 }, { 114, 114 }, WidgetType::wt_9, 1),
makeWidget({ 0, 0 }, { 600, 398 }, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { 598, 13 }, WidgetType::caption_25, WindowColour::primary, StringIds::title_object_selection),
makeWidget({ 585, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 65 }, { 600, 333 }, WidgetType::panel, WindowColour::secondary),
makeWidget({ 3, 15 }, { 589, 50 }, WidgetType::wt_5, WindowColour::secondary),
makeWidget({ 470, 20 }, { 122, 12 }, WidgetType::wt_11, WindowColour::primary, StringIds::object_selection_advanced, StringIds::object_selection_advanced_tooltip),
makeWidget({ 4, 68 }, { 288, 317 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
makeWidget({ 391, 68 }, { 114, 114 }, WidgetType::wt_9, WindowColour::secondary),
widgetEnd(),
};
@ -178,8 +178,8 @@ namespace OpenLoco::Ui::Windows::ObjectSelectionWindow
}
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = skin->colour_0B;
window->colours[1] = skin->colour_0C;
window->setColour(WindowColour::primary, skin->colour_0B);
window->setColour(WindowColour::secondary, skin->colour_0C);
return window;
}
@ -269,10 +269,10 @@ namespace OpenLoco::Ui::Windows::ObjectSelectionWindow
if (_tabInformation[index].row != row)
continue;
auto image = Gfx::recolour(ImageIds::tab, self->colours[1]);
auto image = Gfx::recolour(ImageIds::tab, self->getColour(WindowColour::secondary));
if (_tabInformation[index].index == self->current_tab)
{
image = Gfx::recolour(ImageIds::selected_tab, self->colours[1]);
image = Gfx::recolour(ImageIds::selected_tab, self->getColour(WindowColour::secondary));
Gfx::drawImage(context, xPos, yPos, image);
image = Gfx::recolour(_tabDisplayInfo[_tabInformation[index].index].image, Colour::saturated_green);
@ -290,7 +290,7 @@ namespace OpenLoco::Ui::Windows::ObjectSelectionWindow
if (row < 1)
{
auto colour = Colour::getShade(self->colours[1], 7);
auto colour = Colour::getShade(self->getColour(WindowColour::secondary), 7);
Gfx::drawRect(context, xPos, yPos + 26, 31, 1, colour);
}
}
@ -500,7 +500,7 @@ namespace OpenLoco::Ui::Windows::ObjectSelectionWindow
// 0x004733F5
static void draw(Window* self, Gfx::Context* context)
{
Gfx::fillRectInset(context, self->x, self->y + 20, self->x + self->width - 1, self->y + 20 + 60, self->colours[0], 0);
Gfx::fillRectInset(context, self->x, self->y + 20, self->x + self->width - 1, self->y + 20 + 60, self->getColour(WindowColour::primary), 0);
self->draw(context);
drawTabs(self, context);
@ -519,13 +519,13 @@ namespace OpenLoco::Ui::Windows::ObjectSelectionWindow
if (doDefault)
{
auto widget = widgets[widx::objectImage];
auto colour = Colour::getShade(self->colours[1], 5);
auto colour = Colour::getShade(self->getColour(WindowColour::secondary), 5);
Gfx::drawRect(context, self->x + widget.left, self->y + widget.top, widget.width(), widget.height(), colour);
}
else
{
auto widget = widgets[widx::objectImage];
auto colour = Colour::getShade(self->colours[1], 0);
auto colour = Colour::getShade(self->getColour(WindowColour::secondary), 0);
Gfx::drawRect(context, self->x + widget.left + 1, self->y + widget.top + 1, widget.width() - 2, widget.height() - 2, colour);
}
@ -587,7 +587,7 @@ namespace OpenLoco::Ui::Windows::ObjectSelectionWindow
// 0x0047361D
static void drawScroll(Window* self, Gfx::Context* context, uint32_t)
{
Gfx::clearSingle(*context, Colour::getShade(self->colours[1], 4));
Gfx::clearSingle(*context, Colour::getShade(self->getColour(WindowColour::secondary), 4));
if (ObjectManager::getNumInstalledObjects() == 0)
return;
@ -597,7 +597,7 @@ namespace OpenLoco::Ui::Windows::ObjectSelectionWindow
for (auto [i, object] : objects)
{
uint8_t flags = (1 << 7) | (1 << 6) | (1 << 5);
Gfx::fillRectInset(context, 2, y, 11, y + 10, self->colours[1], flags);
Gfx::fillRectInset(context, 2, y, 11, y + 10, self->getColour(WindowColour::secondary), flags);
uint8_t textColour = ControlCodes::colour_black;
@ -622,7 +622,7 @@ namespace OpenLoco::Ui::Windows::ObjectSelectionWindow
_currentFontSpriteBase = Font::m1;
}
auto checkColour = Colour::opaque(self->colours[1]);
auto checkColour = Colour::opaque(self->getColour(WindowColour::secondary));
if (_50D144[i] & 0x1C)
{

View File

@ -147,17 +147,17 @@ namespace OpenLoco::Ui::Windows::Options
Widget::drawTab(w, ctx, ImageIds::tab_miscellaneous, Widx::tab_miscellaneous);
}
#define common_options_widgets(window_size, window_caption_id) \
makeWidget({ 0, 0 }, window_size, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { (uint16_t)(window_size.width - 2), 13 }, WidgetType::caption_25, 0, window_caption_id), \
makeWidget({ (int16_t)(window_size.width - 15), 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { window_size.width, 102 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::display_options), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::sound_options), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::music_options), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::regional_options), \
makeRemapWidget({ 127, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::control_options), \
makeRemapWidget({ 158, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::miscellaneous_options)
#define common_options_widgets(window_size, window_caption_id) \
makeWidget({ 0, 0 }, window_size, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { (uint16_t)(window_size.width - 2), 13 }, WidgetType::caption_25, WindowColour::primary, window_caption_id), \
makeWidget({ (int16_t)(window_size.width - 15), 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { window_size.width, 102 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::display_options), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::sound_options), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::music_options), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::regional_options), \
makeRemapWidget({ 127, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::control_options), \
makeRemapWidget({ 158, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::miscellaneous_options)
static constexpr int tabWidgets = (1 << Widx::tab_display) | (1 << Widx::tab_sound) | (1 << Widx::tab_music) | (1 << Widx::tab_regional) | (1 << Widx::tab_controls) | (1 << Widx::tab_miscellaneous);
@ -196,19 +196,19 @@ namespace OpenLoco::Ui::Windows::Options
static Widget _widgets[] = {
common_options_widgets(_window_size, StringIds::options_title_display),
makeWidget({ 4, 49 }, { 392, 97 }, WidgetType::groupbox, 1, StringIds::frame_hardware),
makeDropdownWidgets({ 235, 63 }, { 154, 12 }, WidgetType::wt_18, 1, StringIds::empty),
makeDropdownWidgets({ 235, 79 }, { 154, 12 }, WidgetType::wt_18, 1, StringIds::display_resolution_label_format),
makeStepperWidgets({ 235, 95 }, { 154, 12 }, WidgetType::wt_17, 1, StringIds::empty),
makeWidget({ 10, 111 }, { 174, 12 }, WidgetType::checkbox, 1, StringIds::option_uncap_fps, StringIds::option_uncap_fps_tooltip),
makeWidget({ 10, 127 }, { 174, 12 }, WidgetType::checkbox, 1, StringIds::option_show_fps_counter, StringIds::option_show_fps_counter_tooltip),
makeWidget({ 4, 49 }, { 392, 97 }, WidgetType::groupbox, WindowColour::secondary, StringIds::frame_hardware),
makeDropdownWidgets({ 235, 63 }, { 154, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::empty),
makeDropdownWidgets({ 235, 79 }, { 154, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::display_resolution_label_format),
makeStepperWidgets({ 235, 95 }, { 154, 12 }, WidgetType::wt_17, WindowColour::secondary, StringIds::empty),
makeWidget({ 10, 111 }, { 174, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::option_uncap_fps, StringIds::option_uncap_fps_tooltip),
makeWidget({ 10, 127 }, { 174, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::option_show_fps_counter, StringIds::option_show_fps_counter_tooltip),
makeWidget({ 4, 150 }, { 392, 96 }, WidgetType::groupbox, 1, StringIds::frame_map_rendering),
makeDropdownWidgets({ 235, 164 }, { 154, 12 }, WidgetType::wt_18, 1, StringIds::empty, StringIds::vehicles_min_scale_tip),
makeDropdownWidgets({ 235, 180 }, { 154, 12 }, WidgetType::wt_18, 1, StringIds::empty, StringIds::station_names_min_scale_tip),
makeDropdownWidgets({ 235, 196 }, { 154, 12 }, WidgetType::wt_18, 1, StringIds::empty),
makeWidget({ 10, 211 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::landscape_smoothing, StringIds::landscape_smoothing_tip),
makeWidget({ 10, 227 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::gridlines_on_landscape, StringIds::gridlines_on_landscape_tip),
makeWidget({ 4, 150 }, { 392, 96 }, WidgetType::groupbox, WindowColour::secondary, StringIds::frame_map_rendering),
makeDropdownWidgets({ 235, 164 }, { 154, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::empty, StringIds::vehicles_min_scale_tip),
makeDropdownWidgets({ 235, 180 }, { 154, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::empty, StringIds::station_names_min_scale_tip),
makeDropdownWidgets({ 235, 196 }, { 154, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::empty),
makeWidget({ 10, 211 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::landscape_smoothing, StringIds::landscape_smoothing_tip),
makeWidget({ 10, 227 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::gridlines_on_landscape, StringIds::gridlines_on_landscape_tip),
widgetEnd(),
};
@ -304,7 +304,7 @@ namespace OpenLoco::Ui::Windows::Options
static void constructionMarkerMouseDown(Window* w, WidgetIndex_t wi)
{
Widget dropdown = w->widgets[Widx::construction_marker];
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->colours[1], 2, 0x80);
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->getColour(WindowColour::secondary), 2, 0x80);
Dropdown::add(0, StringIds::dropdown_stringid, StringIds::white);
Dropdown::add(1, StringIds::dropdown_stringid, StringIds::translucent);
@ -332,7 +332,7 @@ namespace OpenLoco::Ui::Windows::Options
static void vehicleZoomMouseDown(Window* w, WidgetIndex_t wi)
{
Widget dropdown = w->widgets[Widx::vehicles_min_scale];
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->colours[1], 4, 0x80);
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->getColour(WindowColour::secondary), 4, 0x80);
Dropdown::add(0, StringIds::dropdown_stringid, StringIds::full_scale);
Dropdown::add(1, StringIds::dropdown_stringid, StringIds::half_scale);
@ -362,7 +362,7 @@ namespace OpenLoco::Ui::Windows::Options
static void stationNamesScaleMouseDown(Window* w, WidgetIndex_t wi)
{
Widget dropdown = w->widgets[Widx::station_names_min_scale];
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->colours[1], 4, 0x80);
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->getColour(WindowColour::secondary), 4, 0x80);
Dropdown::add(0, StringIds::dropdown_stringid, StringIds::full_scale);
Dropdown::add(1, StringIds::dropdown_stringid, StringIds::half_scale);
@ -405,7 +405,7 @@ namespace OpenLoco::Ui::Windows::Options
static void screenModeMouseDown(Window* w, WidgetIndex_t wi)
{
Widget dropdown = w->widgets[Widx::screen_mode];
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->colours[1], 3, 0x80);
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->getColour(WindowColour::secondary), 3, 0x80);
Dropdown::add(0, StringIds::dropdown_stringid, StringIds::options_mode_windowed);
Dropdown::add(1, StringIds::dropdown_stringid, StringIds::options_mode_fullscreen);
@ -437,7 +437,7 @@ namespace OpenLoco::Ui::Windows::Options
std::vector<Resolution> resolutions = getFullscreenResolutions();
Widget dropdown = w->widgets[Widx::display_resolution];
Dropdown::showText2(w->x + dropdown.left, w->y + dropdown.top, dropdown.width(), dropdown.height(), w->colours[1], resolutions.size(), 0x80);
Dropdown::showText2(w->x + dropdown.left, w->y + dropdown.top, dropdown.width(), dropdown.height(), w->getColour(WindowColour::secondary), resolutions.size(), 0x80);
auto& cfg = Config::getNew();
for (size_t i = 0; i < resolutions.size(); i++)
@ -694,9 +694,9 @@ namespace OpenLoco::Ui::Windows::Options
static Widget _widgets[] = {
common_options_widgets(_window_size, StringIds::options_title_sound),
makeWidget({ 10, 49 }, { 346, 12 }, WidgetType::wt_18, 1, StringIds::stringid),
makeWidget({ 344, 50 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 10, 65 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::play_title_music),
makeWidget({ 10, 49 }, { 346, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::stringid),
makeWidget({ 344, 50 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 10, 65 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::play_title_music),
widgetEnd(),
};
@ -803,7 +803,7 @@ namespace OpenLoco::Ui::Windows::Options
if (devices.size() != 0)
{
Widget dropdown = w->widgets[Widx::audio_device];
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->colours[1], devices.size(), 0x80);
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->getColour(WindowColour::secondary), devices.size(), 0x80);
for (size_t i = 0; i < devices.size(); i++)
{
auto name = devices[i].c_str();
@ -885,15 +885,15 @@ namespace OpenLoco::Ui::Windows::Options
static Widget _widgets[] = {
common_options_widgets(_window_size, StringIds::options_title_music),
makeWidget({ 160, 49 }, { 196, 12 }, WidgetType::wt_18, 1, StringIds::stringid),
makeWidget({ 344, 50 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 10, 64 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::music_controls_stop, StringIds::music_controls_stop_tip),
makeWidget({ 34, 64 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::music_controls_play, StringIds::music_controls_play_tip),
makeWidget({ 58, 64 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::music_controls_next, StringIds::music_controls_next_tip),
makeWidget({ 256, 64 }, { 109, 24 }, WidgetType::wt_5, 1, -1, StringIds::set_volume_tip),
makeWidget({ 10, 93 }, { 346, 12 }, WidgetType::wt_18, 1, StringIds::arg2_stringid),
makeWidget({ 344, 94 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 183, 108 }, { 173, 12 }, WidgetType::wt_11, 1, StringIds::edit_music_selection, StringIds::edit_music_selection_tip),
makeWidget({ 160, 49 }, { 196, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::stringid),
makeWidget({ 344, 50 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 10, 64 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::music_controls_stop, StringIds::music_controls_stop_tip),
makeWidget({ 34, 64 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::music_controls_play, StringIds::music_controls_play_tip),
makeWidget({ 58, 64 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::music_controls_next, StringIds::music_controls_next_tip),
makeWidget({ 256, 64 }, { 109, 24 }, WidgetType::wt_5, WindowColour::secondary, -1, StringIds::set_volume_tip),
makeWidget({ 10, 93 }, { 346, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::arg2_stringid),
makeWidget({ 344, 94 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 183, 108 }, { 173, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::edit_music_selection, StringIds::edit_music_selection_tip),
widgetEnd(),
};
@ -974,10 +974,10 @@ namespace OpenLoco::Ui::Windows::Options
Gfx::drawString_494B3F(*context, w->x + 183, w->y + w->widgets[Widx::volume].top + 7, 0, StringIds::volume, nullptr);
Gfx::drawImage(context, w->x + w->widgets[Widx::volume].left, w->y + w->widgets[Widx::volume].top, 0x20000000 | (w->colours[1] << 19) | ImageIds::volume_slider_track);
Gfx::drawImage(context, w->x + w->widgets[Widx::volume].left, w->y + w->widgets[Widx::volume].top, 0x20000000 | (w->getColour(WindowColour::secondary) << 19) | ImageIds::volume_slider_track);
int16_t x = 90 + (Config::get().volume / 32);
Gfx::drawImage(context, w->x + w->widgets[Widx::volume].left + x, w->y + w->widgets[Widx::volume].top, 0x20000000 | (w->colours[1] << 19) | ImageIds::volume_slider_thumb);
Gfx::drawImage(context, w->x + w->widgets[Widx::volume].left + x, w->y + w->widgets[Widx::volume].top, 0x20000000 | (w->getColour(WindowColour::secondary) << 19) | ImageIds::volume_slider_thumb);
}
static void onMouseUp(Window* w, WidgetIndex_t wi)
@ -1111,7 +1111,7 @@ namespace OpenLoco::Ui::Windows::Options
static void musicPlaylistMouseDown(Window* w)
{
Widget dropdown = w->widgets[Widx::music_playlist];
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->colours[1], 3, 0x80);
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->getColour(WindowColour::secondary), 3, 0x80);
Dropdown::add(0, StringIds::dropdown_stringid, StringIds::play_only_music_from_current_era);
Dropdown::add(1, StringIds::dropdown_stringid, StringIds::play_all_music);
@ -1190,7 +1190,7 @@ namespace OpenLoco::Ui::Windows::Options
auto tracks = get_available_tracks();
Widget dropdown = w->widgets[Widx::currently_playing];
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->colours[1], tracks.size(), 0x80);
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->getColour(WindowColour::secondary), tracks.size(), 0x80);
int index = -1;
for (auto track : tracks)
@ -1271,18 +1271,18 @@ namespace OpenLoco::Ui::Windows::Options
static Widget _widgets[] = {
common_options_widgets(_window_size, StringIds::options_title_regional),
makeWidget({ 183, 49 }, { 173, 12 }, WidgetType::wt_18, 1, StringIds::stringptr),
makeWidget({ 344, 50 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 183, 69 }, { 173, 12 }, WidgetType::wt_18, 1, StringIds::arg12_stringid),
makeWidget({ 344, 70 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 183, 84 }, { 173, 12 }, WidgetType::wt_18, 1, StringIds::arg6_stringid),
makeWidget({ 344, 85 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 183, 104 }, { 173, 12 }, WidgetType::wt_18, 1, StringIds::arg10_stringid, StringIds::current_game_currency_tip),
makeWidget({ 344, 105 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown, StringIds::current_game_currency_tip),
makeWidget({ 183, 119 }, { 173, 12 }, WidgetType::wt_18, 1, StringIds::preferred_currency_buffer, StringIds::new_game_currency_tip),
makeWidget({ 344, 120 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown, StringIds::new_game_currency_tip),
makeWidget({ 10, 134 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::use_preferred_currency_new_game, StringIds::use_preferred_currency_new_game_tip),
makeWidget({ 10, 148 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::use_preferred_currency_always, StringIds::use_preferred_currency_always_tip),
makeWidget({ 183, 49 }, { 173, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::stringptr),
makeWidget({ 344, 50 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 183, 69 }, { 173, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::arg12_stringid),
makeWidget({ 344, 70 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 183, 84 }, { 173, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::arg6_stringid),
makeWidget({ 344, 85 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 183, 104 }, { 173, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::arg10_stringid, StringIds::current_game_currency_tip),
makeWidget({ 344, 105 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown, StringIds::current_game_currency_tip),
makeWidget({ 183, 119 }, { 173, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::preferred_currency_buffer, StringIds::new_game_currency_tip),
makeWidget({ 344, 120 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown, StringIds::new_game_currency_tip),
makeWidget({ 10, 134 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::use_preferred_currency_new_game, StringIds::use_preferred_currency_new_game_tip),
makeWidget({ 10, 148 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::use_preferred_currency_always, StringIds::use_preferred_currency_always_tip),
widgetEnd(),
};
@ -1464,7 +1464,7 @@ namespace OpenLoco::Ui::Windows::Options
uint8_t num_languages = static_cast<uint8_t>(lds.size());
Widget dropdown = w->widgets[Widx::language];
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->colours[1], num_languages - 1, 0x80);
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->getColour(WindowColour::secondary), num_languages - 1, 0x80);
std::string& current_language = Config::getNew().language;
@ -1500,7 +1500,7 @@ namespace OpenLoco::Ui::Windows::Options
uint8_t* _11364A0 = (uint8_t*)*__11364A0;
Widget dropdown = w->widgets[Widx::currency];
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->colours[1], _112C185, 0x80);
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->getColour(WindowColour::secondary), _112C185, 0x80);
int index = -1;
for (auto object : ObjectManager::getAvailableObjects(ObjectType::currency))
{
@ -1559,7 +1559,7 @@ namespace OpenLoco::Ui::Windows::Options
static void preferredCurrencyMouseDown(Window* w)
{
Widget dropdown = w->widgets[Widx::preferred_currency];
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->colours[1], _112C185, 0x80);
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->getColour(WindowColour::secondary), _112C185, 0x80);
int index = -1;
for (auto object : ObjectManager::getAvailableObjects(ObjectType::currency))
@ -1643,7 +1643,7 @@ namespace OpenLoco::Ui::Windows::Options
static void distanceSpeedMouseDown(Window* w)
{
Widget dropdown = w->widgets[Widx::distance_speed];
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->colours[1], 2, 0x80);
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->getColour(WindowColour::secondary), 2, 0x80);
Dropdown::add(0, StringIds::dropdown_stringid, StringIds::imperial);
Dropdown::add(1, StringIds::dropdown_stringid, StringIds::metric);
@ -1674,7 +1674,7 @@ namespace OpenLoco::Ui::Windows::Options
static void heightsLabelsMouseDown(Window* w)
{
Widget dropdown = w->widgets[Widx::heights];
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->colours[1], 2, 0x80);
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->getColour(WindowColour::secondary), 2, 0x80);
Dropdown::add(0, StringIds::dropdown_stringid, StringIds::height_units);
Dropdown::add(1, StringIds::dropdown_stringid, StringIds::height_real_values);
@ -1750,9 +1750,9 @@ namespace OpenLoco::Ui::Windows::Options
static Widget _widgets[] = {
common_options_widgets(_window_size, StringIds::options_title_controls),
makeWidget({ 10, 49 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::scroll_screen_edge, StringIds::scroll_screen_edge_tip),
makeWidget({ 10, 64 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::zoom_to_cursor, StringIds::zoom_to_cursor_tip),
makeWidget({ 26, 79 }, { 160, 12 }, WidgetType::wt_11, 1, StringIds::customise_keys, StringIds::customise_keys_tip),
makeWidget({ 10, 49 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::scroll_screen_edge, StringIds::scroll_screen_edge_tip),
makeWidget({ 10, 64 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::zoom_to_cursor, StringIds::zoom_to_cursor_tip),
makeWidget({ 26, 79 }, { 160, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::customise_keys, StringIds::customise_keys_tip),
widgetEnd(),
};
@ -1899,15 +1899,15 @@ namespace OpenLoco::Ui::Windows::Options
static Widget _widgets[] = {
common_options_widgets(_window_size, StringIds::options_title_miscellaneous),
makeWidget({ 10, 49 }, { 400, 12 }, WidgetType::checkbox, 1, StringIds::option_cheat_menu_enable, StringIds::tooltip_option_cheat_menu_enable),
makeWidget({ 10, 64 }, { 400, 12 }, WidgetType::checkbox, 1, StringIds::disable_vehicle_breakdowns),
makeWidget({ 10, 79 }, { 400, 12 }, WidgetType::checkbox, 1, StringIds::disableAICompanies, StringIds::disableAICompanies_tip),
makeWidget({ 10, 94 }, { 400, 12 }, WidgetType::checkbox, 1, StringIds::use_preferred_owner_name, StringIds::use_preferred_owner_name_tip),
makeWidget({ 335, 109 }, { 75, 12 }, WidgetType::wt_11, 1, StringIds::change),
makeWidget({ 10, 124 }, { 400, 12 }, WidgetType::checkbox, 1, StringIds::export_plugin_objects, StringIds::export_plugin_objects_tip),
makeWidget({ 250, 139 }, { 156, 12 }, WidgetType::wt_18, 1, StringIds::empty),
makeWidget({ 394, 140 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeStepperWidgets({ 250, 154 }, { 156, 12 }, WidgetType::wt_17, 1, StringIds::empty),
makeWidget({ 10, 49 }, { 400, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::option_cheat_menu_enable, StringIds::tooltip_option_cheat_menu_enable),
makeWidget({ 10, 64 }, { 400, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::disable_vehicle_breakdowns),
makeWidget({ 10, 79 }, { 400, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::disableAICompanies, StringIds::disableAICompanies_tip),
makeWidget({ 10, 94 }, { 400, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::use_preferred_owner_name, StringIds::use_preferred_owner_name_tip),
makeWidget({ 335, 109 }, { 75, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::change),
makeWidget({ 10, 124 }, { 400, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::export_plugin_objects, StringIds::export_plugin_objects_tip),
makeWidget({ 250, 139 }, { 156, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::empty),
makeWidget({ 394, 140 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeStepperWidgets({ 250, 154 }, { 156, 12 }, WidgetType::wt_17, WindowColour::secondary, StringIds::empty),
widgetEnd(),
};
@ -2054,7 +2054,7 @@ namespace OpenLoco::Ui::Windows::Options
static void showAutosaveFrequencyDropdown(Window* w, WidgetIndex_t wi)
{
auto dropdown = w->widgets[wi];
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->colours[1], 5, 0x80);
Dropdown::show(w->x + dropdown.left, w->y + dropdown.top, dropdown.width() - 4, dropdown.height(), w->getColour(WindowColour::secondary), 5, 0x80);
// Add pre-defined entries
Dropdown::add(0, StringIds::dropdown_stringid, { StringIds::autosave_never });
@ -2383,8 +2383,8 @@ namespace OpenLoco::Ui::Windows::Options
window->row_hover = -1;
auto interface = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = interface->colour_0B;
window->colours[1] = interface->colour_10;
window->setColour(WindowColour::primary, interface->colour_0B);
window->setColour(WindowColour::secondary, interface->colour_10);
sub_4BF8CD();
sub_4C1519();

View File

@ -45,11 +45,11 @@ namespace OpenLoco::Ui::Windows::PlayerInfoPanel
// 0x00509d08
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 140, 29 }, WidgetType::wt_3, 0),
makeWidget({ 2, 2 }, { 136, 25 }, WidgetType::wt_3, 0),
makeWidget({ 1, 1 }, { 26, 26 }, WidgetType::wt_9, 0),
makeWidget({ 27, 2 }, { 111, 12 }, WidgetType::wt_9, 0, ImageIds::null, StringIds::tooltip_company_value),
makeWidget({ 27, 14 }, { 111, 12 }, WidgetType::wt_9, 0, ImageIds::null, StringIds::tooltip_performance_index),
makeWidget({ 0, 0 }, { 140, 29 }, WidgetType::wt_3, WindowColour::primary),
makeWidget({ 2, 2 }, { 136, 25 }, WidgetType::wt_3, WindowColour::primary),
makeWidget({ 1, 1 }, { 26, 26 }, WidgetType::wt_9, WindowColour::primary),
makeWidget({ 27, 2 }, { 111, 12 }, WidgetType::wt_9, WindowColour::primary, ImageIds::null, StringIds::tooltip_company_value),
makeWidget({ 27, 14 }, { 111, 12 }, WidgetType::wt_9, WindowColour::primary, ImageIds::null, StringIds::tooltip_performance_index),
widgetEnd(),
};
@ -194,8 +194,8 @@ namespace OpenLoco::Ui::Windows::PlayerInfoPanel
auto skin = ObjectManager::get<InterfaceSkinObject>();
if (skin != nullptr)
{
window->colours[0] = Colour::translucent(skin->colour_16);
window->colours[1] = Colour::translucent(skin->colour_16);
window->setColour(WindowColour::primary, Colour::translucent(skin->colour_16));
window->setColour(WindowColour::secondary, Colour::translucent(skin->colour_16));
}
return window;
@ -216,7 +216,7 @@ namespace OpenLoco::Ui::Windows::PlayerInfoPanel
// Draw widgets.
window->draw(context);
drawRectInset(context, window->x + frame.left + 1, window->y + frame.top + 1, frame.width() - 2, frame.height() - 2, window->colours[1], 0x30);
drawRectInset(context, window->x + frame.left + 1, window->y + frame.top + 1, frame.width() - 2, frame.height() - 2, window->getColour(WindowColour::secondary), 0x30);
auto playerCompany = CompanyManager::get(CompanyManager::getControllingId());
auto competitor = ObjectManager::get<CompetitorObject>(playerCompany->competitor_id);
@ -238,7 +238,7 @@ namespace OpenLoco::Ui::Windows::PlayerInfoPanel
}
}
auto colour = Colour::opaque(window->colours[0]);
auto colour = Colour::opaque(window->getColour(WindowColour::primary));
if (Input::isHovering(WindowType::playerInfoToolbar, 0, Widx::company_value))
{
colour = Colour::white;
@ -261,7 +261,7 @@ namespace OpenLoco::Ui::Windows::PlayerInfoPanel
performanceString = StringIds::player_info_performance_decrease;
}
auto colour = window->colours[0] & 0x7F;
auto colour = window->getColour(WindowColour::primary) & 0x7F;
if (Input::isHovering(WindowType::playerInfoToolbar, 0, Widx::performance_index))
{
colour = Colour::white;

View File

@ -26,9 +26,9 @@ namespace OpenLoco::Ui::Windows::ProgressBar
constexpr Gfx::ui_size_t windowSize = { 350, 47 };
Widget widgets[] = {
makeWidget({ 0, 0 }, { 350, 47 }, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { 348, 13 }, WidgetType::caption_25, 0, StringIds::buffer_1250),
makeWidget({ 0, 15 }, { 350, 32 }, WidgetType::panel, 1),
makeWidget({ 0, 0 }, { 350, 47 }, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { 348, 13 }, WidgetType::caption_25, WindowColour::primary, StringIds::buffer_1250),
makeWidget({ 0, 15 }, { 350, 32 }, WidgetType::panel, WindowColour::secondary),
widgetEnd(),
};
@ -58,8 +58,8 @@ namespace OpenLoco::Ui::Windows::ProgressBar
window->widgets = widgets;
window->initScrollWidgets();
window->colours[0] = Colour::black;
window->colours[1] = Colour::black;
window->setColour(WindowColour::primary, Colour::black);
window->setColour(WindowColour::secondary, Colour::black);
setProgress(0);
return window;

View File

@ -104,14 +104,14 @@ namespace OpenLoco::Ui::Windows::PromptBrowse
};
static Widget widgets[] = {
makeWidget({ 0, 0 }, { 500, 380 }, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { 498, 13 }, WidgetType::caption_25, 0, StringIds::buffer_2039),
makeWidget({ 485, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { 500, 365 }, WidgetType::panel, 1),
makeWidget({ 473, 18 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::icon_parent_folder, StringIds::window_browse_parent_folder_tooltip),
makeWidget({ 88, 348 }, { 408, 14 }, WidgetType::wt_17, 1),
makeWidget({ 426, 364 }, { 70, 12 }, WidgetType::wt_11, 1, StringIds::label_button_ok),
makeWidget({ 3, 45 }, { 494, 323 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 0, 0 }, { 500, 380 }, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { 498, 13 }, WidgetType::caption_25, WindowColour::primary, StringIds::buffer_2039),
makeWidget({ 485, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { 500, 365 }, WidgetType::panel, WindowColour::secondary),
makeWidget({ 473, 18 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::icon_parent_folder, StringIds::window_browse_parent_folder_tooltip),
makeWidget({ 88, 348 }, { 408, 14 }, WidgetType::wt_17, WindowColour::secondary),
makeWidget({ 426, 364 }, { 70, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::label_button_ok),
makeWidget({ 3, 45 }, { 494, 323 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
widgetEnd(),
};
@ -214,8 +214,8 @@ namespace OpenLoco::Ui::Windows::PromptBrowse
auto& widget = window->widgets[widx::text_filename];
inputSession.calculateTextOffset(widget.width());
window->colours[0] = Colour::black;
window->colours[1] = Colour::saturated_green;
window->setColour(WindowColour::primary, Colour::black);
window->setColour(WindowColour::secondary, Colour::saturated_green);
WindowManager::setCurrentModalType(WindowType::fileBrowserPrompt);
promptTickLoop(
@ -494,7 +494,7 @@ namespace OpenLoco::Ui::Windows::PromptBrowse
{
loco_global<char[16], 0x0112C826> _commonFormatArgs;
Gfx::fillRectInset(&context, x, y, x + width, y + height, window.colours[1], 0x30);
Gfx::fillRectInset(&context, x, y, x + width, y + height, window.getColour(WindowColour::secondary), 0x30);
auto imageId = 0;
auto g1 = Gfx::getG1Element(imageId);
@ -545,7 +545,7 @@ namespace OpenLoco::Ui::Windows::PromptBrowse
static void drawLandscapePreview(Ui::Window& window, Gfx::Context& context, int32_t x, int32_t y, int32_t width, int32_t height)
{
Gfx::fillRectInset(&context, x, y, x + width, y + height, window.colours[1], 0x30);
Gfx::fillRectInset(&context, x, y, x + width, y + height, window.getColour(WindowColour::secondary), 0x30);
if (S5::getPreviewOptions().scenarioFlags & Scenario::flags::landscape_generation_done)
{
@ -569,7 +569,7 @@ namespace OpenLoco::Ui::Windows::PromptBrowse
else
{
// Randomly generated landscape
auto imageId = ImageIds::random_map_watermark | (window.colours[1] << 19) | 0x20000000;
auto imageId = ImageIds::random_map_watermark | (window.getColour(WindowColour::secondary) << 19) | 0x20000000;
Gfx::drawImage(&context, x, y, imageId);
Gfx::point_t origin = { (int16_t)(x + 64), (int16_t)(y + 60) };
Gfx::drawStringCentredWrapped(&context, &origin, 128, 0, StringIds::randomly_generated_landscape);
@ -604,7 +604,7 @@ namespace OpenLoco::Ui::Windows::PromptBrowse
Gfx::drawString_494B3F(context, &origin, 0, StringIds::black_stringid, _commonFormatArgs);
// Draw vertical caret
Gfx::drawRect(&context, origin.x, origin.y, 1, 9, byte_1136C99[window->colours[1] * 8]);
Gfx::drawRect(&context, origin.x, origin.y, 1, 9, byte_1136C99[window->getColour(WindowColour::secondary) * 8]);
}
}
}
@ -617,7 +617,7 @@ namespace OpenLoco::Ui::Windows::PromptBrowse
static std::string _nameBuffer;
// Background
Gfx::clearSingle(*context, Colour::getShade(window->colours[1], 4));
Gfx::clearSingle(*context, Colour::getShade(window->getColour(WindowColour::secondary), 4));
// Directories / files
auto y = 0;

View File

@ -39,11 +39,11 @@ namespace OpenLoco::Ui::Windows::PromptOkCancel
};
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 280, 92 }, WidgetType::panel, 0),
makeWidget({ 1, 1 }, { 278, 13 }, WidgetType::caption_22, 0, StringIds::buffer_2039),
makeWidget({ 267, 2 }, { 11, 11 }, WidgetType::wt_11, 0, StringIds::close_window_cross, StringIds::tooltip_close_window),
makeWidget({ 20, 77 }, { 100, 12 }, WidgetType::wt_11, 0, StringIds::label_ok),
makeWidget({ 160, 77 }, { 100, 12 }, WidgetType::wt_11, 0, StringIds::label_button_cancel),
makeWidget({ 0, 0 }, { 280, 92 }, WidgetType::panel, WindowColour::primary),
makeWidget({ 1, 1 }, { 278, 13 }, WidgetType::caption_22, WindowColour::primary, StringIds::buffer_2039),
makeWidget({ 267, 2 }, { 11, 11 }, WidgetType::wt_11, WindowColour::primary, StringIds::close_window_cross, StringIds::tooltip_close_window),
makeWidget({ 20, 77 }, { 100, 12 }, WidgetType::wt_11, WindowColour::primary, StringIds::label_ok),
makeWidget({ 160, 77 }, { 100, 12 }, WidgetType::wt_11, WindowColour::primary, StringIds::label_button_cancel),
widgetEnd(),
};
@ -75,8 +75,8 @@ namespace OpenLoco::Ui::Windows::PromptOkCancel
window->enabled_widgets = (1 << widx::closeButton) | (1 << widx::okButton) | (1 << widx::cancelButton);
window->initScrollWidgets();
window->colours[0] = Colour::translucent(Colour::salmon_pink);
window->colours[1] = Colour::translucent(Colour::salmon_pink);
window->setColour(WindowColour::primary, Colour::translucent(Colour::salmon_pink));
window->setColour(WindowColour::secondary, Colour::translucent(Colour::salmon_pink));
window->flags |= Ui::WindowFlags::transparent;
_result = 0;

View File

@ -30,13 +30,13 @@ namespace OpenLoco::Ui::Windows::PromptSaveWindow
};
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 260, 48 }, WidgetType::panel, 0),
makeWidget({ 1, 1 }, { 258, 13 }, WidgetType::caption_22, 0, StringIds::empty),
makeWidget({ 247, 2 }, { 11, 11 }, WidgetType::wt_11, 0, StringIds::close_window_cross, StringIds::tooltip_close_window),
makeWidget({ 2, 17 }, { 256, 12 }, WidgetType::wt_13, 0, StringIds::empty),
makeWidget({ 8, 33 }, { 78, 12 }, WidgetType::wt_11, 0, StringIds::label_button_save),
makeWidget({ 91, 33 }, { 78, 12 }, WidgetType::wt_11, 0, StringIds::label_button_dont_save),
makeWidget({ 174, 33 }, { 78, 12 }, WidgetType::wt_11, 0, StringIds::label_button_cancel),
makeWidget({ 0, 0 }, { 260, 48 }, WidgetType::panel, WindowColour::primary),
makeWidget({ 1, 1 }, { 258, 13 }, WidgetType::caption_22, WindowColour::primary, StringIds::empty),
makeWidget({ 247, 2 }, { 11, 11 }, WidgetType::wt_11, WindowColour::primary, StringIds::close_window_cross, StringIds::tooltip_close_window),
makeWidget({ 2, 17 }, { 256, 12 }, WidgetType::wt_13, WindowColour::primary, StringIds::empty),
makeWidget({ 8, 33 }, { 78, 12 }, WidgetType::wt_11, WindowColour::primary, StringIds::label_button_save),
makeWidget({ 91, 33 }, { 78, 12 }, WidgetType::wt_11, WindowColour::primary, StringIds::label_button_dont_save),
makeWidget({ 174, 33 }, { 78, 12 }, WidgetType::wt_11, WindowColour::primary, StringIds::label_button_cancel),
widgetEnd(),
};
@ -61,7 +61,7 @@ namespace OpenLoco::Ui::Windows::PromptSaveWindow
window->widgets = _widgets;
window->enabled_widgets = (1 << widx::closeButton) | (1 << widx::saveButton) | (1 << widx::dontSaveButton) | (1 << widx::cancelButton);
window->initScrollWidgets();
window->colours[0] = Colour::translucent(Colour::salmon_pink);
window->setColour(WindowColour::primary, Colour::translucent(Colour::salmon_pink));
window->flags |= Ui::WindowFlags::transparent;
setPauseFlag(1 << 1);

View File

@ -64,14 +64,14 @@ namespace OpenLoco::Ui::Windows::ScenarioOptions
const uint64_t enabledWidgets = (1 << widx::tab_challenge) | (1 << widx::tab_companies) | (1 << widx::tab_finances) | (1 << widx::tab_scenario);
#define commonWidgets(frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { 366, frameHeight }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { 364, 13 }, WidgetType::caption_25, 0, windowCaptionId), \
makeWidget({ 0, 41 }, { 366, 175 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_scenario_challenge), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_company_options), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_financial_options), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_scenario_options)
#define commonWidgets(frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { 366, frameHeight }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { 364, 13 }, WidgetType::caption_25, WindowColour::primary, windowCaptionId), \
makeWidget({ 0, 41 }, { 366, 175 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_scenario_challenge), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_company_options), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_financial_options), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_scenario_options)
// Defined at the bottom of this file.
static void initEvents();
@ -197,15 +197,15 @@ namespace OpenLoco::Ui::Windows::ScenarioOptions
static Widget widgets[] = {
commonWidgets(197, StringIds::title_scenario_challenge),
makeWidget({ 10, 52 }, { 346, 12 }, WidgetType::wt_18, 1),
makeWidget({ 344, 53 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeStepperWidgets({ 10, 67 }, { 163, 12 }, WidgetType::wt_17, 1),
makeWidget({ 193, 67 }, { 163, 12 }, WidgetType::wt_18, 1),
makeWidget({ 344, 68 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 10, 83 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::and_be_the_top_company),
makeWidget({ 10, 98 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::and_be_within_the_top_companies),
makeWidget({ 10, 113 }, { 346, 12 }, WidgetType::checkbox, 1, StringIds::with_a_time_limit),
makeStepperWidgets({ 256, 112 }, { 100, 12 }, WidgetType::wt_17, 1, StringIds::time_limit_years_value),
makeWidget({ 10, 52 }, { 346, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeWidget({ 344, 53 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeStepperWidgets({ 10, 67 }, { 163, 12 }, WidgetType::wt_17, WindowColour::secondary),
makeWidget({ 193, 67 }, { 163, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeWidget({ 344, 68 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 10, 83 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::and_be_the_top_company),
makeWidget({ 10, 98 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::and_be_within_the_top_companies),
makeWidget({ 10, 113 }, { 346, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::with_a_time_limit),
makeStepperWidgets({ 256, 112 }, { 100, 12 }, WidgetType::wt_17, WindowColour::secondary, StringIds::time_limit_years_value),
widgetEnd(),
};
@ -265,7 +265,7 @@ namespace OpenLoco::Ui::Windows::ScenarioOptions
case widx::objective_type_btn:
{
Widget& target = self->widgets[widx::objective_type];
Dropdown::show(self->x + target.left, self->y + target.top, target.width() - 4, target.height(), self->colours[1], std::size(objectiveTypeLabelIds), 0x80);
Dropdown::show(self->x + target.left, self->y + target.top, target.width() - 4, target.height(), self->getColour(WindowColour::secondary), std::size(objectiveTypeLabelIds), 0x80);
for (size_t i = 0; i < std::size(objectiveTypeLabelIds); i++)
Dropdown::add(i, StringIds::dropdown_stringid, objectiveTypeLabelIds[i]);
@ -363,7 +363,7 @@ namespace OpenLoco::Ui::Windows::ScenarioOptions
}
Widget& target = self->widgets[widx::objective_cargo];
Dropdown::show(self->x + target.left, self->y + target.top, target.width() - 4, target.height(), self->colours[1], numCargoObjects, 0x80);
Dropdown::show(self->x + target.left, self->y + target.top, target.width() - 4, target.height(), self->getColour(WindowColour::secondary), numCargoObjects, 0x80);
uint16_t dropdownIndex = 0;
for (uint16_t cargoIdx = 0; cargoIdx < maxCargoObjects; cargoIdx++)
@ -522,8 +522,8 @@ namespace OpenLoco::Ui::Windows::ScenarioOptions
auto skin = ObjectManager::get<InterfaceSkinObject>();
if (skin != nullptr)
{
window->colours[0] = skin->colour_0B;
window->colours[1] = skin->colour_0E;
window->setColour(WindowColour::primary, skin->colour_0B);
window->setColour(WindowColour::secondary, skin->colour_0E);
}
// 0x0043EEFF end
@ -582,26 +582,26 @@ namespace OpenLoco::Ui::Windows::ScenarioOptions
static Widget widgets[] = {
commonWidgets(327, StringIds::title_company_options),
makeStepperWidgets({ 256, 52 }, { 100, 12 }, WidgetType::wt_17, 1, StringIds::max_competing_companies_value),
makeStepperWidgets({ 256, 67 }, { 100, 12 }, WidgetType::wt_17, 1, StringIds::delay_before_competing_companies_start_months),
makeWidget({ 246, 102 }, { 110, 12 }, WidgetType::wt_18, 1),
makeWidget({ 344, 103 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 246, 117 }, { 110, 12 }, WidgetType::wt_18, 1),
makeWidget({ 344, 118 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 246, 132 }, { 110, 12 }, WidgetType::wt_18, 1),
makeWidget({ 344, 133 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 15, 160 }, { 341, 12 }, WidgetType::checkbox, 1, StringIds::forbid_trains),
makeWidget({ 15, 172 }, { 341, 12 }, WidgetType::checkbox, 1, StringIds::forbid_buses),
makeWidget({ 15, 184 }, { 341, 12 }, WidgetType::checkbox, 1, StringIds::forbid_trucks),
makeWidget({ 15, 196 }, { 341, 12 }, WidgetType::checkbox, 1, StringIds::forbid_trams),
makeWidget({ 15, 208 }, { 341, 12 }, WidgetType::checkbox, 1, StringIds::forbid_aircraft),
makeWidget({ 15, 220 }, { 341, 12 }, WidgetType::checkbox, 1, StringIds::forbid_ships),
makeWidget({ 15, 247 }, { 341, 12 }, WidgetType::checkbox, 1, StringIds::forbid_trains),
makeWidget({ 15, 259 }, { 341, 12 }, WidgetType::checkbox, 1, StringIds::forbid_buses),
makeWidget({ 15, 271 }, { 341, 12 }, WidgetType::checkbox, 1, StringIds::forbid_trucks),
makeWidget({ 15, 283 }, { 341, 12 }, WidgetType::checkbox, 1, StringIds::forbid_trams),
makeWidget({ 15, 295 }, { 341, 12 }, WidgetType::checkbox, 1, StringIds::forbid_aircraft),
makeWidget({ 15, 307 }, { 341, 12 }, WidgetType::checkbox, 1, StringIds::forbid_ships),
makeStepperWidgets({ 256, 52 }, { 100, 12 }, WidgetType::wt_17, WindowColour::secondary, StringIds::max_competing_companies_value),
makeStepperWidgets({ 256, 67 }, { 100, 12 }, WidgetType::wt_17, WindowColour::secondary, StringIds::delay_before_competing_companies_start_months),
makeWidget({ 246, 102 }, { 110, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeWidget({ 344, 103 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 246, 117 }, { 110, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeWidget({ 344, 118 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 246, 132 }, { 110, 12 }, WidgetType::wt_18, WindowColour::secondary),
makeWidget({ 344, 133 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 15, 160 }, { 341, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::forbid_trains),
makeWidget({ 15, 172 }, { 341, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::forbid_buses),
makeWidget({ 15, 184 }, { 341, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::forbid_trucks),
makeWidget({ 15, 196 }, { 341, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::forbid_trams),
makeWidget({ 15, 208 }, { 341, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::forbid_aircraft),
makeWidget({ 15, 220 }, { 341, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::forbid_ships),
makeWidget({ 15, 247 }, { 341, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::forbid_trains),
makeWidget({ 15, 259 }, { 341, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::forbid_buses),
makeWidget({ 15, 271 }, { 341, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::forbid_trucks),
makeWidget({ 15, 283 }, { 341, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::forbid_trams),
makeWidget({ 15, 295 }, { 341, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::forbid_aircraft),
makeWidget({ 15, 307 }, { 341, 12 }, WidgetType::checkbox, WindowColour::secondary, StringIds::forbid_ships),
widgetEnd(),
};
@ -723,7 +723,7 @@ namespace OpenLoco::Ui::Windows::ScenarioOptions
case widx::preferred_intelligence_btn:
{
Widget& target = self->widgets[widx::preferred_intelligence];
Dropdown::show(self->x + target.left, self->y + target.top, target.width() - 4, target.height(), self->colours[1], std::size(preferenceLabelIds), 0x80);
Dropdown::show(self->x + target.left, self->y + target.top, target.width() - 4, target.height(), self->getColour(WindowColour::secondary), std::size(preferenceLabelIds), 0x80);
for (size_t i = 0; i < std::size(preferenceLabelIds); i++)
Dropdown::add(i, StringIds::dropdown_stringid, preferenceLabelIds[i]);
@ -735,7 +735,7 @@ namespace OpenLoco::Ui::Windows::ScenarioOptions
case widx::preferred_aggressiveness_btn:
{
Widget& target = self->widgets[widx::preferred_aggressiveness];
Dropdown::show(self->x + target.left, self->y + target.top, target.width() - 4, target.height(), self->colours[1], std::size(preferenceLabelIds), 0x80);
Dropdown::show(self->x + target.left, self->y + target.top, target.width() - 4, target.height(), self->getColour(WindowColour::secondary), std::size(preferenceLabelIds), 0x80);
for (size_t i = 0; i < std::size(preferenceLabelIds); i++)
Dropdown::add(i, StringIds::dropdown_stringid, preferenceLabelIds[i]);
@ -747,7 +747,7 @@ namespace OpenLoco::Ui::Windows::ScenarioOptions
case widx::preferred_competitiveness_btn:
{
Widget& target = self->widgets[widx::preferred_competitiveness];
Dropdown::show(self->x + target.left, self->y + target.top, target.width() - 4, target.height(), self->colours[1], std::size(preferenceLabelIds), 0x80);
Dropdown::show(self->x + target.left, self->y + target.top, target.width() - 4, target.height(), self->getColour(WindowColour::secondary), std::size(preferenceLabelIds), 0x80);
for (size_t i = 0; i < std::size(preferenceLabelIds); i++)
Dropdown::add(i, StringIds::dropdown_stringid, preferenceLabelIds[i]);
@ -855,9 +855,9 @@ namespace OpenLoco::Ui::Windows::ScenarioOptions
static Widget widgets[] = {
commonWidgets(217, StringIds::title_financial_options),
makeStepperWidgets({ 256, 52 }, { 100, 12 }, WidgetType::wt_17, 1, StringIds::starting_loan_value),
makeStepperWidgets({ 256, 67 }, { 100, 12 }, WidgetType::wt_17, 1, StringIds::max_loan_size_value),
makeStepperWidgets({ 256, 82 }, { 100, 12 }, WidgetType::wt_17, 1, StringIds::loan_interest_rate_value),
makeStepperWidgets({ 256, 52 }, { 100, 12 }, WidgetType::wt_17, WindowColour::secondary, StringIds::starting_loan_value),
makeStepperWidgets({ 256, 67 }, { 100, 12 }, WidgetType::wt_17, WindowColour::secondary, StringIds::max_loan_size_value),
makeStepperWidgets({ 256, 82 }, { 100, 12 }, WidgetType::wt_17, WindowColour::secondary, StringIds::loan_interest_rate_value),
widgetEnd(),
};
@ -982,10 +982,10 @@ namespace OpenLoco::Ui::Windows::ScenarioOptions
static Widget widgets[] = {
commonWidgets(217, StringIds::title_scenario_options),
makeWidget({ 281, 52 }, { 75, 12 }, WidgetType::wt_11, 1, StringIds::change),
makeWidget({ 196, 67 }, { 160, 12 }, WidgetType::wt_18, 1, StringIds::empty),
makeWidget({ 344, 68 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 281, 82 }, { 75, 12 }, WidgetType::wt_11, 1, StringIds::change),
makeWidget({ 281, 52 }, { 75, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::change),
makeWidget({ 196, 67 }, { 160, 12 }, WidgetType::wt_18, WindowColour::secondary, StringIds::empty),
makeWidget({ 344, 68 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
makeWidget({ 281, 82 }, { 75, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::change),
widgetEnd(),
};
@ -1066,7 +1066,7 @@ namespace OpenLoco::Ui::Windows::ScenarioOptions
if (widgetIndex == widx::scenario_group_btn)
{
Widget& target = self->widgets[widx::scenario_group];
Dropdown::show(self->x + target.left, self->y + target.top, target.width() - 4, target.height(), self->colours[1], std::size(scenarioGroupLabelIds), 0x80);
Dropdown::show(self->x + target.left, self->y + target.top, target.width() - 4, target.height(), self->getColour(WindowColour::secondary), std::size(scenarioGroupLabelIds), 0x80);
for (size_t i = 0; i < std::size(scenarioGroupLabelIds); i++)
Dropdown::add(i, StringIds::dropdown_stringid, scenarioGroupLabelIds[i]);

View File

@ -38,16 +38,16 @@ namespace OpenLoco::Ui::Windows::ScenarioSelect
}
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 610, 412 }, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { 608, 13 }, WidgetType::caption_25, 0, StringIds::select_scenario_for_new_game),
makeWidget({ 595, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 48 }, { 610, 364 }, WidgetType::wt_3, 1),
makeRemapWidget({ 3, 15 }, { 91, 34 }, WidgetType::wt_8, 1, ImageIds::wide_tab),
makeRemapWidget({ 94, 15 }, { 91, 34 }, WidgetType::wt_8, 1, ImageIds::wide_tab),
makeRemapWidget({ 185, 15 }, { 91, 34 }, WidgetType::wt_8, 1, ImageIds::wide_tab),
makeRemapWidget({ 276, 15 }, { 91, 34 }, WidgetType::wt_8, 1, ImageIds::wide_tab),
makeRemapWidget({ 367, 15 }, { 91, 34 }, WidgetType::wt_8, 1, ImageIds::wide_tab),
makeWidget({ 3, 52 }, { 431, 356 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 0, 0 }, { 610, 412 }, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { 608, 13 }, WidgetType::caption_25, WindowColour::primary, StringIds::select_scenario_for_new_game),
makeWidget({ 595, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 48 }, { 610, 364 }, WidgetType::wt_3, WindowColour::secondary),
makeRemapWidget({ 3, 15 }, { 91, 34 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::wide_tab),
makeRemapWidget({ 94, 15 }, { 91, 34 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::wide_tab),
makeRemapWidget({ 185, 15 }, { 91, 34 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::wide_tab),
makeRemapWidget({ 276, 15 }, { 91, 34 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::wide_tab),
makeRemapWidget({ 367, 15 }, { 91, 34 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::wide_tab),
makeWidget({ 3, 52 }, { 431, 356 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
widgetEnd(),
};
@ -113,8 +113,8 @@ namespace OpenLoco::Ui::Windows::ScenarioSelect
self->enabled_widgets = (1 << widx::close) | (1 << widx::tab0) | (1 << widx::tab1) | (1 << widx::tab2) | (1 << widx::tab3) | (1 << widx::tab4);
self->initScrollWidgets();
self->colours[0] = Colour::black;
self->colours[1] = Colour::saturated_green;
self->setColour(WindowColour::primary, Colour::black);
self->setColour(WindowColour::secondary, Colour::saturated_green);
self->var_846 = 0xFFFF;
self->var_85A = static_cast<int32_t>(0xFFFFFFFF);
@ -153,7 +153,7 @@ namespace OpenLoco::Ui::Windows::ScenarioSelect
// 0x004439AF
static void draw(Window* self, Gfx::Context* context)
{
Gfx::drawRectInset(context, self->x, self->y + 20, self->width, 41, self->colours[0], 0);
Gfx::drawRectInset(context, self->x, self->y + 20, self->width, 41, self->getColour(WindowColour::primary), 0);
// Draw widgets.
self->draw(context);
@ -227,7 +227,7 @@ namespace OpenLoco::Ui::Windows::ScenarioSelect
// Outline for preview image
{
x = baseX + 20;
Gfx::drawRectInset(context, x, y, 130, 130, self->colours[1], 0x30);
Gfx::drawRectInset(context, x, y, 130, 130, self->getColour(WindowColour::secondary), 0x30);
x += 1;
y += 1;
@ -261,7 +261,7 @@ namespace OpenLoco::Ui::Windows::ScenarioSelect
y += 1;
// No preview image -- a placeholder will have to do.
auto image = Gfx::recolour(ImageIds::random_map_watermark, self->colours[1]);
auto image = Gfx::recolour(ImageIds::random_map_watermark, self->getColour(WindowColour::secondary));
Gfx::drawImage(context, x, y, image);
x += 64;
@ -328,7 +328,7 @@ namespace OpenLoco::Ui::Windows::ScenarioSelect
// 0x00443D02
static void drawScroll(Window* self, Gfx::Context* const context, uint32_t)
{
auto colour = Colour::getShade(self->colours[1], 4);
auto colour = Colour::getShade(self->getColour(WindowColour::secondary), 4);
Gfx::clearSingle(*context, colour);
using namespace ScenarioManager;

View File

@ -47,21 +47,21 @@ namespace OpenLoco::Ui::Windows::StationList
};
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 600, 197 }, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { 598, 13 }, WidgetType::caption_24, 0, StringIds::stringid_all_stations),
makeWidget({ 585, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 41 }, { 600, 155 }, WidgetType::panel, 1),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_all_stations),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_rail_stations),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_road_stations),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_airports),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_ship_ports),
makeWidget({ 0, 14 }, { 26, 26 }, WidgetType::wt_9, 0, StringIds::null, StringIds::tooltip_select_company),
makeWidget({ 4, 43 }, { 200, 12 }, WidgetType::wt_14, 1, StringIds::null, StringIds::tooltip_sort_by_name),
makeWidget({ 204, 43 }, { 200, 12 }, WidgetType::wt_14, 1, StringIds::null, StringIds::tooltip_sort_by_station_status),
makeWidget({ 404, 43 }, { 90, 12 }, WidgetType::wt_14, 1, StringIds::null, StringIds::tooltip_sort_by_total_units_waiting),
makeWidget({ 494, 43 }, { 120, 12 }, WidgetType::wt_14, 1, StringIds::null, StringIds::tooltip_sort_by_cargo_accepted),
makeWidget({ 3, 56 }, { 594, 126 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 0, 0 }, { 600, 197 }, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { 598, 13 }, WidgetType::caption_24, WindowColour::primary, StringIds::stringid_all_stations),
makeWidget({ 585, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 41 }, { 600, 155 }, WidgetType::panel, WindowColour::secondary),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_all_stations),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_rail_stations),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_road_stations),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_airports),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_ship_ports),
makeWidget({ 0, 14 }, { 26, 26 }, WidgetType::wt_9, WindowColour::primary, StringIds::null, StringIds::tooltip_select_company),
makeWidget({ 4, 43 }, { 200, 12 }, WidgetType::wt_14, WindowColour::secondary, StringIds::null, StringIds::tooltip_sort_by_name),
makeWidget({ 204, 43 }, { 200, 12 }, WidgetType::wt_14, WindowColour::secondary, StringIds::null, StringIds::tooltip_sort_by_station_status),
makeWidget({ 404, 43 }, { 90, 12 }, WidgetType::wt_14, WindowColour::secondary, StringIds::null, StringIds::tooltip_sort_by_total_units_waiting),
makeWidget({ 494, 43 }, { 120, 12 }, WidgetType::wt_14, WindowColour::secondary, StringIds::null, StringIds::tooltip_sort_by_cargo_accepted),
makeWidget({ 3, 56 }, { 594, 126 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
widgetEnd(),
};
@ -334,7 +334,7 @@ namespace OpenLoco::Ui::Windows::StationList
window->flags |= WindowFlags::resizable;
auto interface = ObjectManager::get<InterfaceSkinObject>();
window->colours[1] = interface->colour_0A;
window->setColour(WindowColour::secondary, interface->colour_0A);
}
// TODO: only needs to be called once.
@ -471,7 +471,7 @@ namespace OpenLoco::Ui::Windows::StationList
// 0x0049157F
static void drawScroll(Ui::Window* window, Gfx::Context* context, uint32_t scrollIndex)
{
auto shade = Colour::getShade(window->colours[1], 4);
auto shade = Colour::getShade(window->getColour(WindowColour::secondary), 4);
Gfx::clearSingle(*context, shade);
uint16_t yPos = 0;

View File

@ -47,14 +47,14 @@ namespace OpenLoco::Ui::Windows::Station
const uint64_t enabledWidgets = (1 << widx::caption) | (1 << widx::close_button) | (1 << widx::tab_station) | (1 << widx::tab_cargo) | (1 << widx::tab_cargo_ratings);
#define commonWidgets(frameWidth, frameHeight) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_23, 0, StringIds::title_station), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 95 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_station), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_station_cargo), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_station_cargo_ratings)
#define commonWidgets(frameWidth, frameHeight) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_23, WindowColour::primary, StringIds::title_station), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 95 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_station), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_station_cargo), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_station_cargo_ratings)
// Defined at the bottom of this file.
static void prepareDraw(Window* self);
@ -82,9 +82,9 @@ namespace OpenLoco::Ui::Windows::Station
Widget widgets[] = {
// commonWidgets(windowSize.width, windowSize.height),
commonWidgets(223, 136),
makeWidget({ 3, 44 }, { 195, 80 }, WidgetType::viewport, 1, 0xFFFFFFFE),
makeWidget({ 3, 115 }, { 195, 21 }, WidgetType::wt_13, 1),
makeWidget({ 0, 0 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::null, StringIds::move_main_view_to_show_this),
makeWidget({ 3, 44 }, { 195, 80 }, WidgetType::viewport, WindowColour::secondary, 0xFFFFFFFE),
makeWidget({ 3, 115 }, { 195, 21 }, WidgetType::wt_13, WindowColour::secondary),
makeWidget({ 0, 0 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::null, StringIds::move_main_view_to_show_this),
widgetEnd(),
};
@ -290,7 +290,7 @@ namespace OpenLoco::Ui::Windows::Station
window->saved_view.clear();
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[1] = skin->colour_0A;
window->setColour(WindowColour::secondary, skin->colour_0A);
// 0x0048F29F end
}
// TODO(avgeffen): only needs to be called once.
@ -322,9 +322,9 @@ namespace OpenLoco::Ui::Windows::Station
static Widget widgets[] = {
commonWidgets(223, 136),
makeWidget({ 3, 44 }, { 217, 80 }, WidgetType::scrollview, 1, 2),
makeWidget({ 3, 125 }, { 195, 10 }, WidgetType::wt_13, 1),
makeWidget({ 198, 44 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::show_station_catchment, StringIds::station_catchment),
makeWidget({ 3, 44 }, { 217, 80 }, WidgetType::scrollview, WindowColour::secondary, 2),
makeWidget({ 3, 125 }, { 195, 10 }, WidgetType::wt_13, WindowColour::secondary),
makeWidget({ 198, 44 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::show_station_catchment, StringIds::station_catchment),
widgetEnd(),
};
@ -462,7 +462,7 @@ namespace OpenLoco::Ui::Windows::Station
// 0x0048E986
static void drawScroll(Window* self, Gfx::Context* context, uint32_t scrollIndex)
{
Gfx::clearSingle(*context, Colour::getShade(self->colours[1], 4));
Gfx::clearSingle(*context, Colour::getShade(self->getColour(WindowColour::secondary), 4));
const auto station = StationManager::get(self->number);
int16_t y = 1;
@ -575,8 +575,8 @@ namespace OpenLoco::Ui::Windows::Station
static Widget widgets[] = {
commonWidgets(249, 136),
makeWidget({ 3, 44 }, { 244, 80 }, WidgetType::scrollview, 1, 2),
makeWidget({ 3, 125 }, { 221, 11 }, WidgetType::wt_13, 1),
makeWidget({ 3, 44 }, { 244, 80 }, WidgetType::scrollview, WindowColour::secondary, 2),
makeWidget({ 3, 125 }, { 221, 11 }, WidgetType::wt_13, WindowColour::secondary),
widgetEnd(),
};
@ -656,7 +656,7 @@ namespace OpenLoco::Ui::Windows::Station
// 0x0048EF02
static void drawRatingBar(Window* self, Gfx::Context* context, int16_t x, int16_t y, uint8_t amount, Colour_t colour)
{
Gfx::fillRectInset(context, x, y, x + 99, y + 9, self->colours[1], 48);
Gfx::fillRectInset(context, x, y, x + 99, y + 9, self->getColour(WindowColour::secondary), 48);
uint16_t rating = (amount * 96) / 256;
if (rating > 2)
@ -668,7 +668,7 @@ namespace OpenLoco::Ui::Windows::Station
// 0x0048ED2F
static void drawScroll(Window* self, Gfx::Context* context, uint32_t scrollIndex)
{
Gfx::clearSingle(*context, Colour::getShade(self->colours[1], 4));
Gfx::clearSingle(*context, Colour::getShade(self->getColour(WindowColour::secondary), 4));
const auto station = StationManager::get(self->number);
int16_t y = 0;

View File

@ -79,16 +79,16 @@ namespace OpenLoco::Ui::Windows::Terraform
const uint64_t enabledWidgets = (1 << widx::close_button) | (1 << widx::tab_adjust_land) | (1 << widx::tab_adjust_water) | (1 << widx::tab_build_walls) | (1 << widx::tab_clear_area) | (1 << widx::tab_plant_trees);
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_24, 0, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { 130, 74 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_6, 1, ImageIds::tab, StringIds::tooltip_clear_land), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_6, 1, ImageIds::tab, StringIds::tooltip_adjust_land), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_6, 1, ImageIds::tab, StringIds::tooltip_adjust_water), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_6, 1, ImageIds::tab, StringIds::tooltip_plant_trees), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_6, 1, ImageIds::tab, StringIds::tooltip_build_walls)
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_24, WindowColour::primary, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { 130, 74 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_6, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_clear_land), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_6, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_adjust_land), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_6, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_adjust_water), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_6, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_plant_trees), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_6, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_build_walls)
static WindowEventList _events;
@ -124,11 +124,11 @@ namespace OpenLoco::Ui::Windows::Terraform
Widget widgets[] = {
commonWidgets(634, 162, StringIds::title_plant_trees),
makeWidget({ 3, 45 }, { 605, 101 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 609, 46 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::rotate_object, StringIds::rotate_object_90),
makeWidget({ 609, 70 }, { 24, 24 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_object_colour),
makeWidget({ 609, 94 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::plant_cluster_selected_tree, StringIds::plant_cluster_selected_tree),
makeWidget({ 609, 118 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::plant_cluster_random_tree, StringIds::plant_cluster_random_tree),
makeWidget({ 3, 45 }, { 605, 101 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
makeWidget({ 609, 46 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::rotate_object, StringIds::rotate_object_90),
makeWidget({ 609, 70 }, { 24, 24 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_object_colour),
makeWidget({ 609, 94 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::plant_cluster_selected_tree, StringIds::plant_cluster_selected_tree),
makeWidget({ 609, 118 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::plant_cluster_random_tree, StringIds::plant_cluster_random_tree),
widgetEnd(),
};
@ -614,7 +614,7 @@ namespace OpenLoco::Ui::Windows::Terraform
// 0x004BB982
static void drawScroll(Window* self, Gfx::Context* context, uint32_t scrollIndex)
{
auto shade = Colour::getShade(self->colours[1], 3);
auto shade = Colour::getShade(self->getColour(WindowColour::secondary), 3);
Gfx::clearSingle(*context, shade);
uint16_t xPos = 0;
@ -627,13 +627,13 @@ namespace OpenLoco::Ui::Windows::Terraform
if (self->row_info[i] == self->var_846)
{
_lastTreeColourFlag = Colour::translucent_flag;
Gfx::drawRectInset(context, xPos, yPos, 65, rowHeight - 1, self->colours[1], Colour::translucent_flag);
Gfx::drawRectInset(context, xPos, yPos, 65, rowHeight - 1, self->getColour(WindowColour::secondary), Colour::translucent_flag);
}
}
else
{
_lastTreeColourFlag = Colour::translucent_flag | Colour::outline_flag;
Gfx::drawRectInset(context, xPos, yPos, 65, rowHeight - 1, self->colours[1], (Colour::translucent_flag | Colour::outline_flag));
Gfx::drawRectInset(context, xPos, yPos, 65, rowHeight - 1, self->getColour(WindowColour::secondary), (Colour::translucent_flag | Colour::outline_flag));
}
auto treeObj = ObjectManager::get<TreeObject>(self->row_info[i]);
@ -713,7 +713,7 @@ namespace OpenLoco::Ui::Windows::Terraform
window->max_height = PlantTrees::windowSize.height;
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[1] = skin->colour_0E;
window->setColour(WindowColour::secondary, skin->colour_0E);
// End of 0x004BB586
@ -760,9 +760,9 @@ namespace OpenLoco::Ui::Windows::Terraform
Widget widgets[] = {
commonWidgets(130, 105, StringIds::clear_area),
makeWidget({ 33 + 16, 45 }, { 64, 44 }, WidgetType::wt_3, 1, ImageIds::tool_area, StringIds::tooltip_clear_area),
makeWidget({ 34 + 16, 46 }, { 16, 16 }, WidgetType::wt_7, 1, Gfx::recolour(ImageIds::decrease_tool_area, Colour::white), StringIds::tooltip_decrease_clear_area),
makeWidget({ 80 + 16, 72 }, { 16, 16 }, WidgetType::wt_7, 1, Gfx::recolour(ImageIds::increase_tool_area, Colour::white), StringIds::tooltip_increase_clear_area),
makeWidget({ 33 + 16, 45 }, { 64, 44 }, WidgetType::wt_3, WindowColour::secondary, ImageIds::tool_area, StringIds::tooltip_clear_area),
makeWidget({ 34 + 16, 46 }, { 16, 16 }, WidgetType::wt_7, WindowColour::secondary, Gfx::recolour(ImageIds::decrease_tool_area, Colour::white), StringIds::tooltip_decrease_clear_area),
makeWidget({ 80 + 16, 72 }, { 16, 16 }, WidgetType::wt_7, WindowColour::secondary, Gfx::recolour(ImageIds::increase_tool_area, Colour::white), StringIds::tooltip_increase_clear_area),
widgetEnd(),
};
@ -942,10 +942,10 @@ namespace OpenLoco::Ui::Windows::Terraform
Widget widgets[] = {
commonWidgets(130, 105, StringIds::title_adjust_land),
makeWidget({ 33 + 16, 45 }, { 64, 44 }, WidgetType::wt_3, 1, ImageIds::tool_area, StringIds::tooltip_adjust_land_tool),
makeWidget({ 34 + 16, 46 }, { 16, 16 }, WidgetType::wt_7, 1, Gfx::recolour(ImageIds::decrease_tool_area, Colour::white), StringIds::tooltip_decrease_adjust_land_area),
makeWidget({ 80 + 16, 72 }, { 16, 16 }, WidgetType::wt_7, 1, Gfx::recolour(ImageIds::increase_tool_area, Colour::white), StringIds::tooltip_increase_adjust_land_area),
makeWidget({ 55 + 16, 92 }, { 20, 20 }, WidgetType::wt_6, 0),
makeWidget({ 33 + 16, 45 }, { 64, 44 }, WidgetType::wt_3, WindowColour::secondary, ImageIds::tool_area, StringIds::tooltip_adjust_land_tool),
makeWidget({ 34 + 16, 46 }, { 16, 16 }, WidgetType::wt_7, WindowColour::secondary, Gfx::recolour(ImageIds::decrease_tool_area, Colour::white), StringIds::tooltip_decrease_adjust_land_area),
makeWidget({ 80 + 16, 72 }, { 16, 16 }, WidgetType::wt_7, WindowColour::secondary, Gfx::recolour(ImageIds::increase_tool_area, Colour::white), StringIds::tooltip_increase_adjust_land_area),
makeWidget({ 55 + 16, 92 }, { 20, 20 }, WidgetType::wt_6, WindowColour::primary),
widgetEnd(),
};
@ -1004,7 +1004,7 @@ namespace OpenLoco::Ui::Windows::Terraform
auto xPos = self->widgets[widgetIndex].left + self->x;
auto yPos = self->widgets[widgetIndex].bottom + self->y;
auto heightOffset = self->widgets[widgetIndex].height() - 18;
auto colour = self->colours[1] | 0x80;
auto colour = self->getColour(WindowColour::secondary) | 0x80;
auto count = Dropdown::getItemsPerRow(landCount);
Dropdown::showImage(xPos, yPos, 20, 20, heightOffset, colour, count, landCount);
@ -1373,9 +1373,9 @@ namespace OpenLoco::Ui::Windows::Terraform
Widget widgets[] = {
commonWidgets(130, 105, StringIds::title_adjust_water),
makeWidget({ 33 + 16, 45 }, { 64, 44 }, WidgetType::wt_3, 1, ImageIds::tool_area, StringIds::tooltip_adjust_water_tool),
makeWidget({ 34 + 16, 46 }, { 16, 16 }, WidgetType::wt_7, 1, Gfx::recolour(ImageIds::decrease_tool_area, Colour::white), StringIds::tooltip_decrease_adjust_water_area),
makeWidget({ 80 + 16, 72 }, { 16, 16 }, WidgetType::wt_7, 1, Gfx::recolour(ImageIds::increase_tool_area, Colour::white), StringIds::tooltip_increase_adjust_water_area),
makeWidget({ 33 + 16, 45 }, { 64, 44 }, WidgetType::wt_3, WindowColour::secondary, ImageIds::tool_area, StringIds::tooltip_adjust_water_tool),
makeWidget({ 34 + 16, 46 }, { 16, 16 }, WidgetType::wt_7, WindowColour::secondary, Gfx::recolour(ImageIds::decrease_tool_area, Colour::white), StringIds::tooltip_decrease_adjust_water_area),
makeWidget({ 80 + 16, 72 }, { 16, 16 }, WidgetType::wt_7, WindowColour::secondary, Gfx::recolour(ImageIds::increase_tool_area, Colour::white), StringIds::tooltip_increase_adjust_water_area),
widgetEnd(),
};
@ -1612,7 +1612,7 @@ namespace OpenLoco::Ui::Windows::Terraform
Widget widgets[] = {
commonWidgets(418, 108, StringIds::title_build_walls),
makeWidget({ 2, 45 }, { 391, 48 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 2, 45 }, { 391, 48 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
widgetEnd(),
};
@ -1917,7 +1917,7 @@ namespace OpenLoco::Ui::Windows::Terraform
// 0x004BC11C
static void drawScroll(Window* self, Gfx::Context* context, uint32_t scrollIndex)
{
auto shade = Colour::getShade(self->colours[1], 3);
auto shade = Colour::getShade(self->getColour(WindowColour::secondary), 3);
Gfx::clearSingle(*context, shade);
uint16_t xPos = 0;
@ -1928,12 +1928,12 @@ namespace OpenLoco::Ui::Windows::Terraform
{
if (self->row_info[i] == self->var_846)
{
Gfx::drawRectInset(context, xPos, yPos, 40, rowHeight, self->colours[1], Colour::translucent_flag);
Gfx::drawRectInset(context, xPos, yPos, 40, rowHeight, self->getColour(WindowColour::secondary), Colour::translucent_flag);
}
}
else
{
Gfx::drawRectInset(context, xPos, yPos, 40, rowHeight, self->colours[1], (Colour::translucent_flag | Colour::outline_flag));
Gfx::drawRectInset(context, xPos, yPos, 40, rowHeight, self->getColour(WindowColour::secondary), (Colour::translucent_flag | Colour::outline_flag));
}
auto wallObj = ObjectManager::get<WallObject>(self->row_info[i]);

View File

@ -56,12 +56,12 @@ namespace OpenLoco::Ui::Windows::TextInput
}
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 330, 90 }, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { 328, 13 }, WidgetType::caption_25, 0),
makeWidget({ 315, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { 330, 75 }, WidgetType::panel, 1),
makeWidget({ 4, 58 }, { 322, 14 }, WidgetType::wt_17, 1),
makeTextWidget({ 256, 74 }, { 70, 12 }, WidgetType::wt_11, 1, StringIds::label_button_ok),
makeWidget({ 0, 0 }, { 330, 90 }, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { 328, 13 }, WidgetType::caption_25, WindowColour::primary),
makeWidget({ 315, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { 330, 75 }, WidgetType::panel, WindowColour::secondary),
makeWidget({ 4, 58 }, { 322, 14 }, WidgetType::wt_17, WindowColour::secondary),
makeTextWidget({ 256, 74 }, { 70, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::label_button_ok),
widgetEnd(),
};
@ -146,22 +146,22 @@ namespace OpenLoco::Ui::Windows::TextInput
caller = WindowManager::find(_callingWindowType, _callingWindowNumber);
window->colours[0] = caller->colours[0];
window->colours[1] = caller->colours[1];
window->setColour(WindowColour::primary, caller->getColour(WindowColour::primary));
window->setColour(WindowColour::secondary, caller->getColour(WindowColour::secondary));
window->owner = caller->owner;
if (caller->type == WindowType::titleMenu)
{
InterfaceSkinObject* interface = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = interface->colour_0B;
window->colours[1] = interface->colour_0C;
window->setColour(WindowColour::primary, interface->colour_0B);
window->setColour(WindowColour::secondary, interface->colour_0C);
window->owner = CompanyId::null;
}
if (caller->type == WindowType::timeToolbar)
{
InterfaceSkinObject* interface = ObjectManager::get<InterfaceSkinObject>();
window->colours[1] = interface->colour_0A;
window->setColour(WindowColour::secondary, interface->colour_0A);
window->owner = CompanyManager::getControllingId();
}
@ -268,7 +268,7 @@ namespace OpenLoco::Ui::Windows::TextInput
*((string_id*)(&_commonFormatArgs[0])) = StringIds::buffer_2039;
position = { inputSession.xOffset, 1 };
Gfx::drawString_494B3F(*clipped, &position, 0, StringIds::black_stringid, _commonFormatArgs);
Gfx::fillRect(clipped, position.x, position.y, position.x, position.y + 9, Colour::getShade(window->colours[1], 9));
Gfx::fillRect(clipped, position.x, position.y, position.x, position.y + 9, Colour::getShade(window->getColour(WindowColour::secondary), 9));
}
// 0x004CE8B6

View File

@ -60,15 +60,15 @@ namespace OpenLoco::Ui::Windows::TileInspector
}
static Widget _widgets[] = {
makeWidget({ 0, 0 }, windowSize, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { windowSize.width - 2, 13 }, WidgetType::caption_25, 0, StringIds::tile_inspector),
makeWidget({ windowSize.width - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { windowSize.width, windowSize.height - 15 }, WidgetType::panel, 1),
makeStepperWidgets({ 19, 24 }, { 55, 12 }, WidgetType::wt_17, 1),
makeStepperWidgets({ 92, 24 }, { 55, 12 }, WidgetType::wt_17, 1),
makeWidget({ windowSize.width - 26, 18 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::construction_new_position, StringIds::tile_inspector_select_btn_tooltip),
makeWidget({ 4, 46 }, { windowSize.width - 8, 100 }, WidgetType::scrollview, 1, Ui::Scrollbars::vertical),
makeWidget({ 4, 148 }, { windowSize.width - 8, 30 }, WidgetType::groupbox, 1, StringIds::tile_element_data),
makeWidget({ 0, 0 }, windowSize, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { windowSize.width - 2, 13 }, WidgetType::caption_25, WindowColour::primary, StringIds::tile_inspector),
makeWidget({ windowSize.width - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 15 }, { windowSize.width, windowSize.height - 15 }, WidgetType::panel, WindowColour::secondary),
makeStepperWidgets({ 19, 24 }, { 55, 12 }, WidgetType::wt_17, WindowColour::secondary),
makeStepperWidgets({ 92, 24 }, { 55, 12 }, WidgetType::wt_17, WindowColour::secondary),
makeWidget({ windowSize.width - 26, 18 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_new_position, StringIds::tile_inspector_select_btn_tooltip),
makeWidget({ 4, 46 }, { windowSize.width - 8, 100 }, WidgetType::scrollview, WindowColour::secondary, Ui::Scrollbars::vertical),
makeWidget({ 4, 148 }, { windowSize.width - 8, 30 }, WidgetType::groupbox, WindowColour::secondary, StringIds::tile_element_data),
widgetEnd(),
};
@ -104,8 +104,8 @@ namespace OpenLoco::Ui::Windows::TileInspector
window->initScrollWidgets();
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = skin->colour_0B;
window->colours[1] = skin->colour_0C;
window->setColour(WindowColour::primary, skin->colour_0B);
window->setColour(WindowColour::secondary, skin->colour_0C);
activateMapSelectionTool(window);

View File

@ -44,14 +44,14 @@ namespace OpenLoco::Ui::Windows::TimePanel
static void changeGameSpeed(Window* w, uint8_t speed);
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 140, 29 }, WidgetType::wt_3, 0), // 0,
makeWidget({ 2, 2 }, { 136, 25 }, WidgetType::wt_3, 0), // 1,
makeWidget({ 113, 1 }, { 26, 26 }, WidgetType::wt_9, 0), // 2,
makeWidget({ 2, 2 }, { 111, 12 }, WidgetType::wt_9, 0, ImageIds::null, StringIds::tooltip_daymonthyear_challenge), // 3,
makeRemapWidget({ 18, 15 }, { 20, 12 }, WidgetType::wt_9, 0, ImageIds::speed_pause, StringIds::tooltip_speed_pause), // 4,
makeRemapWidget({ 38, 15 }, { 20, 12 }, WidgetType::wt_9, 0, ImageIds::speed_normal, StringIds::tooltip_speed_normal), // 5,
makeRemapWidget({ 58, 15 }, { 20, 12 }, WidgetType::wt_9, 0, ImageIds::speed_fast_forward, StringIds::tooltip_speed_fast_forward), // 6,
makeRemapWidget({ 78, 15 }, { 20, 12 }, WidgetType::wt_9, 0, ImageIds::speed_extra_fast_forward, StringIds::tooltip_speed_extra_fast_forward), // 7,
makeWidget({ 0, 0 }, { 140, 29 }, WidgetType::wt_3, WindowColour::primary), // 0,
makeWidget({ 2, 2 }, { 136, 25 }, WidgetType::wt_3, WindowColour::primary), // 1,
makeWidget({ 113, 1 }, { 26, 26 }, WidgetType::wt_9, WindowColour::primary), // 2,
makeWidget({ 2, 2 }, { 111, 12 }, WidgetType::wt_9, WindowColour::primary, ImageIds::null, StringIds::tooltip_daymonthyear_challenge), // 3,
makeRemapWidget({ 18, 15 }, { 20, 12 }, WidgetType::wt_9, WindowColour::primary, ImageIds::speed_pause, StringIds::tooltip_speed_pause), // 4,
makeRemapWidget({ 38, 15 }, { 20, 12 }, WidgetType::wt_9, WindowColour::primary, ImageIds::speed_normal, StringIds::tooltip_speed_normal), // 5,
makeRemapWidget({ 58, 15 }, { 20, 12 }, WidgetType::wt_9, WindowColour::primary, ImageIds::speed_fast_forward, StringIds::tooltip_speed_fast_forward), // 6,
makeRemapWidget({ 78, 15 }, { 20, 12 }, WidgetType::wt_9, WindowColour::primary, ImageIds::speed_extra_fast_forward, StringIds::tooltip_speed_extra_fast_forward), // 7,
widgetEnd(),
};
@ -104,8 +104,8 @@ namespace OpenLoco::Ui::Windows::TimePanel
auto skin = ObjectManager::get<InterfaceSkinObject>();
if (skin != nullptr)
{
window->colours[0] = Colour::translucent(skin->colour_17);
window->colours[1] = Colour::translucent(skin->colour_17);
window->setColour(WindowColour::primary, Colour::translucent(skin->colour_17));
window->setColour(WindowColour::secondary, Colour::translucent(skin->colour_17));
}
return window;
@ -180,7 +180,7 @@ namespace OpenLoco::Ui::Windows::TimePanel
// Draw widgets.
self->draw(context);
Gfx::drawRectInset(context, self->x + frame.left + 1, self->y + frame.top + 1, frame.width() - 2, frame.height() - 2, self->colours[1], 0x30);
Gfx::drawRectInset(context, self->x + frame.left + 1, self->y + frame.top + 1, frame.width() - 2, frame.height() - 2, self->getColour(WindowColour::secondary), 0x30);
*(uint32_t*)&_common_format_args[0] = getCurrentDay();
string_id format = StringIds::date_monthyear;
@ -193,7 +193,7 @@ namespace OpenLoco::Ui::Windows::TimePanel
}
}
Colour_t c = Colour::opaque(self->colours[0]);
Colour_t c = Colour::opaque(self->getColour(WindowColour::primary));
if (Input::isHovering(WindowType::timeToolbar, 0, Widx::date_btn))
{
c = Colour::white;

View File

@ -24,7 +24,7 @@ namespace OpenLoco::Ui::Windows::TitleExit
}
static Widget _widgets[] = {
makeWidget({ 0, 0 }, window_size, WidgetType::wt_9, 1, -1, StringIds::title_menu_exit_from_game),
makeWidget({ 0, 0 }, window_size, WidgetType::wt_9, WindowColour::secondary, -1, StringIds::title_menu_exit_from_game),
widgetEnd(),
};
@ -52,8 +52,8 @@ namespace OpenLoco::Ui::Windows::TitleExit
window->initScrollWidgets();
window->colours[0] = Colour::translucent(Colour::saturated_green);
window->colours[1] = Colour::translucent(Colour::saturated_green);
window->setColour(WindowColour::primary, Colour::translucent(Colour::saturated_green));
window->setColour(WindowColour::secondary, Colour::translucent(Colour::saturated_green));
return window;
}

View File

@ -20,7 +20,7 @@ namespace OpenLoco::Ui::Windows::TitleLogo
}
static Widget _widgets[] = {
makeWidget({ 0, 0 }, window_size, WidgetType::wt_3, 0),
makeWidget({ 0, 0 }, window_size, WidgetType::wt_3, WindowColour::primary),
widgetEnd(),
};
@ -46,8 +46,8 @@ namespace OpenLoco::Ui::Windows::TitleLogo
window->initScrollWidgets();
window->colours[0] = Colour::translucent(Colour::grey);
window->colours[1] = Colour::translucent(Colour::grey);
window->setColour(WindowColour::primary, Colour::translucent(Colour::grey));
window->setColour(WindowColour::secondary, Colour::translucent(Colour::grey));
return window;
}

View File

@ -113,12 +113,12 @@ namespace OpenLoco::Ui::Windows::TitleMenu
}
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { btn_main_size, btn_main_size }, WidgetType::wt_9, 1, StringIds::null, StringIds::title_menu_new_game),
makeWidget({ btn_main_size, 0 }, { btn_main_size, btn_main_size }, WidgetType::wt_9, 1, StringIds::null, StringIds::title_menu_load_game),
makeWidget({ btn_main_size * 2, 0 }, { btn_main_size, btn_main_size }, WidgetType::wt_9, 1, StringIds::null, StringIds::title_menu_show_tutorial),
makeWidget({ btn_main_size * 3, 0 }, { btn_main_size, btn_main_size }, WidgetType::wt_9, 1, StringIds::null, StringIds::title_menu_scenario_editor),
makeWidget({ btn_main_size * 4 - 31, btn_main_size - 27 }, { 31, 27 }, WidgetType::wt_9, 1, StringIds::null, StringIds::title_menu_chat_tooltip),
makeWidget({ 0, btn_main_size }, { ww, btn_sub_height }, WidgetType::none, 1, StringIds::null, StringIds::title_multiplayer_toggle_tooltip),
makeWidget({ 0, 0 }, { btn_main_size, btn_main_size }, WidgetType::wt_9, WindowColour::secondary, StringIds::null, StringIds::title_menu_new_game),
makeWidget({ btn_main_size, 0 }, { btn_main_size, btn_main_size }, WidgetType::wt_9, WindowColour::secondary, StringIds::null, StringIds::title_menu_load_game),
makeWidget({ btn_main_size * 2, 0 }, { btn_main_size, btn_main_size }, WidgetType::wt_9, WindowColour::secondary, StringIds::null, StringIds::title_menu_show_tutorial),
makeWidget({ btn_main_size * 3, 0 }, { btn_main_size, btn_main_size }, WidgetType::wt_9, WindowColour::secondary, StringIds::null, StringIds::title_menu_scenario_editor),
makeWidget({ btn_main_size * 4 - 31, btn_main_size - 27 }, { 31, 27 }, WidgetType::wt_9, WindowColour::secondary, StringIds::null, StringIds::title_menu_chat_tooltip),
makeWidget({ 0, btn_main_size }, { ww, btn_sub_height }, WidgetType::none, WindowColour::secondary, StringIds::null, StringIds::title_multiplayer_toggle_tooltip),
widgetEnd(),
};
@ -168,8 +168,8 @@ namespace OpenLoco::Ui::Windows::TitleMenu
window->initScrollWidgets();
window->colours[0] = Colour::translucent(Colour::saturated_green);
window->colours[1] = Colour::translucent(Colour::saturated_green);
window->setColour(WindowColour::primary, Colour::translucent(Colour::saturated_green));
window->setColour(WindowColour::secondary, Colour::translucent(Colour::saturated_green));
window->var_846 = 0;
return window;
@ -411,7 +411,7 @@ namespace OpenLoco::Ui::Windows::TitleMenu
window->y + widget->top,
widget->width(),
widget->height(),
Colour::translucent(window->colours[0]),
Colour::translucent(window->getColour(WindowColour::primary)),
3,
0x80);
}

View File

@ -24,7 +24,7 @@ namespace OpenLoco::Ui::Windows::TitleOptions
}
static Widget _widgets[] = {
makeWidget({ 0, 0 }, window_size, WidgetType::wt_9, 1, -1),
makeWidget({ 0, 0 }, window_size, WidgetType::wt_9, WindowColour::secondary, -1),
widgetEnd(),
};
@ -50,8 +50,8 @@ namespace OpenLoco::Ui::Windows::TitleOptions
window->initScrollWidgets();
window->colours[0] = Colour::translucent(Colour::saturated_green);
window->colours[1] = Colour::translucent(Colour::saturated_green);
window->setColour(WindowColour::primary, Colour::translucent(Colour::saturated_green));
window->setColour(WindowColour::secondary, Colour::translucent(Colour::saturated_green));
return window;
}

View File

@ -11,7 +11,7 @@ using namespace OpenLoco::Interop;
namespace OpenLoco::Ui::Windows::TitleVersion
{
static Widget widgets[] = {
{ WidgetType::end, 0, 0, 0, 0, 0, { 0 }, 0 }
widgetEnd()
};
static Ui::WindowEventList _events;

View File

@ -40,7 +40,7 @@ namespace OpenLoco::Ui::Windows::ToolTip
// 0x005234CC
Widget _widgets[] = {
makeWidget({ 0, 0 }, { 200, 32 }, WidgetType::wt_3, 0),
makeWidget({ 0, 0 }, { 200, 32 }, WidgetType::wt_3, WindowColour::primary),
widgetEnd(),
};

View File

@ -20,10 +20,10 @@ namespace OpenLoco::Ui::Windows::ToolbarBottom::Editor
static WindowEventList _events;
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 200, 34 }, WidgetType::wt_3, 0),
makeWidget({ 2, 2 }, { 196, 30 }, WidgetType::wt_9, 0),
makeWidget({ 440, 0 }, { 200, 34 }, WidgetType::wt_3, 0),
makeWidget({ 442, 2 }, { 196, 30 }, WidgetType::wt_9, 0),
makeWidget({ 0, 0 }, { 200, 34 }, WidgetType::wt_3, WindowColour::primary),
makeWidget({ 2, 2 }, { 196, 30 }, WidgetType::wt_9, WindowColour::primary),
makeWidget({ 440, 0 }, { 200, 34 }, WidgetType::wt_3, WindowColour::primary),
makeWidget({ 442, 2 }, { 196, 30 }, WidgetType::wt_9, WindowColour::primary),
widgetEnd(),
};
@ -76,18 +76,18 @@ namespace OpenLoco::Ui::Windows::ToolbarBottom::Editor
if (EditorController::canGoBack())
{
Gfx::drawRectInset(ctx, previous.left + self->x + 1, previous.top + self->y + 1, previous.width() - 2, previous.height() - 2, self->colours[1], 0x30);
Gfx::drawRectInset(ctx, previous.left + self->x + 1, previous.top + self->y + 1, previous.width() - 2, previous.height() - 2, self->getColour(WindowColour::secondary), 0x30);
}
Gfx::drawRectInset(ctx, next.left + self->x + 1, next.top + self->y + 1, next.width() - 2, next.height() - 2, self->colours[1], 0x30);
Gfx::drawRectInset(ctx, next.left + self->x + 1, next.top + self->y + 1, next.width() - 2, next.height() - 2, self->getColour(WindowColour::secondary), 0x30);
Gfx::drawStringCentred(*ctx, (previous.right + next.left) / 2 + self->x, self->y + self->height - 12, Colour::opaque(self->colours[2]) | Colour::outline_flag, _stepNames[EditorController::getCurrentStep()]);
Gfx::drawStringCentred(*ctx, (previous.right + next.left) / 2 + self->x, self->y + self->height - 12, Colour::opaque(self->getColour(WindowColour::tertiary)) | Colour::outline_flag, _stepNames[EditorController::getCurrentStep()]);
if (EditorController::canGoBack())
{
Gfx::drawImage(ctx, self->x + previous.left + 6, self->y + previous.top + 6, ImageIds::step_back);
int x = (previous.left + 30 + previous.right) / 2;
int y = previous.top + 6;
Colour_t textColour = Colour::opaque(self->colours[1]);
Colour_t textColour = Colour::opaque(self->getColour(WindowColour::secondary));
if (Input::isHovering(self->type, self->number, widx::previous_button))
{
textColour = Colour::white;
@ -98,7 +98,7 @@ namespace OpenLoco::Ui::Windows::ToolbarBottom::Editor
Gfx::drawImage(ctx, self->x + next.right - 29, self->y + next.top + 4, ImageIds::step_forward);
int x = next.left + (next.width() - 31) / 2;
int y = next.top + 6;
Colour_t textColour = Colour::opaque(self->colours[1]);
Colour_t textColour = Colour::opaque(self->getColour(WindowColour::secondary));
if (Input::isHovering(self->type, self->number, widx::next_button))
{
textColour = Colour::white;
@ -139,9 +139,9 @@ namespace OpenLoco::Ui::Windows::ToolbarBottom::Editor
window->enabled_widgets = 1 << widx::previous_button | 1 << widx::previous_frame | 1 << widx::next_frame | 1 << widx::next_button;
window->var_854 = 0;
window->initScrollWidgets();
window->colours[0] = Colour::translucent(Colour::saturated_green);
window->colours[1] = Colour::translucent(Colour::saturated_green);
window->colours[2] = Colour::translucent(Colour::saturated_green);
window->setColour(WindowColour::primary, Colour::translucent(Colour::saturated_green));
window->setColour(WindowColour::secondary, Colour::translucent(Colour::saturated_green));
window->setColour(WindowColour::tertiary, Colour::translucent(Colour::saturated_green));
}
static void initEvents()

View File

@ -53,23 +53,23 @@ namespace OpenLoco::Ui::Windows::ToolbarTop::Game
}
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 30, 28 }, WidgetType::wt_7, 0),
makeWidget({ 30, 0 }, { 30, 28 }, WidgetType::wt_7, 0),
makeWidget({ 60, 0 }, { 30, 28 }, WidgetType::wt_7, 0),
makeWidget({ 0, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::primary),
makeWidget({ 30, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::primary),
makeWidget({ 60, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::primary),
makeWidget({ 104, 0 }, { 30, 28 }, WidgetType::wt_7, 1),
makeWidget({ 134, 0 }, { 30, 28 }, WidgetType::wt_7, 1),
makeWidget({ 164, 0 }, { 30, 28 }, WidgetType::wt_7, 1),
makeWidget({ 104, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::secondary),
makeWidget({ 134, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::secondary),
makeWidget({ 164, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::secondary),
makeWidget({ 267, 0 }, { 30, 28 }, WidgetType::wt_7, 2),
makeWidget({ 387, 0 }, { 30, 28 }, WidgetType::wt_7, 2),
makeWidget({ 357, 0 }, { 30, 28 }, WidgetType::wt_7, 2),
makeWidget({ 417, 0 }, { 30, 28 }, WidgetType::wt_7, 2),
makeWidget({ 417, 0 }, { 30, 28 }, WidgetType::wt_7, 2),
makeWidget({ 267, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::tertiary),
makeWidget({ 387, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::tertiary),
makeWidget({ 357, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::tertiary),
makeWidget({ 417, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::tertiary),
makeWidget({ 417, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::tertiary),
makeWidget({ 490, 0 }, { 30, 28 }, WidgetType::wt_7, 3),
makeWidget({ 520, 0 }, { 30, 28 }, WidgetType::wt_7, 3),
makeWidget({ 460, 0 }, { 30, 28 }, WidgetType::wt_7, 3),
makeWidget({ 490, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::quaternary),
makeWidget({ 520, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::quaternary),
makeWidget({ 460, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::quaternary),
widgetEnd(),
};
@ -108,10 +108,10 @@ namespace OpenLoco::Ui::Windows::ToolbarTop::Game
auto skin = ObjectManager::get<InterfaceSkinObject>();
if (skin != nullptr)
{
window->colours[0] = skin->colour_12;
window->colours[1] = skin->colour_13;
window->colours[2] = skin->colour_14;
window->colours[3] = skin->colour_15;
window->setColour(WindowColour::primary, skin->colour_12);
window->setColour(WindowColour::secondary, skin->colour_13);
window->setColour(WindowColour::tertiary, skin->colour_14);
window->setColour(WindowColour::quaternary, skin->colour_15);
}
}
@ -713,7 +713,7 @@ namespace OpenLoco::Ui::Windows::ToolbarTop::Game
}
auto interface = ObjectManager::get<InterfaceSkinObject>();
uint32_t bg_image = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_empty_transparent, window->colours[2]);
uint32_t bg_image = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_empty_transparent, window->getColour(WindowColour::tertiary));
y--;
if (Input::isDropdownActive(Ui::WindowType::topToolbar, Common::Widx::railroad_menu))
@ -743,7 +743,7 @@ namespace OpenLoco::Ui::Windows::ToolbarTop::Game
auto interface = ObjectManager::get<InterfaceSkinObject>();
uint32_t fg_image = Gfx::recolour(interface->img + button_face_image_ids[static_cast<uint8_t>(*last_vehicles_option)], company_colour);
uint32_t bg_image = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_empty_transparent, window->colours[3]);
uint32_t bg_image = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_empty_transparent, window->getColour(WindowColour::quaternary));
y--;
if (Input::isDropdownActive(Ui::WindowType::topToolbar, Common::Widx::vehicles_menu))
@ -790,12 +790,12 @@ namespace OpenLoco::Ui::Windows::ToolbarTop::Game
if (!Audio::isAudioEnabled())
{
window->activated_widgets |= (1 << Common::Widx::audio_menu);
window->widgets[Common::Widx::audio_menu].image = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_audio_inactive, window->colours[0]);
window->widgets[Common::Widx::audio_menu].image = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_audio_inactive, window->getColour(WindowColour::primary));
}
else
{
window->activated_widgets &= ~(1 << Common::Widx::audio_menu);
window->widgets[Common::Widx::audio_menu].image = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_audio_active, window->colours[0]);
window->widgets[Common::Widx::audio_menu].image = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_audio_active, window->getColour(WindowColour::primary));
}
if (Config::getNew().cheats_menu_enabled)

View File

@ -41,23 +41,23 @@ namespace OpenLoco::Ui::Windows::ToolbarTop::Editor
}
static Widget _widgets[] = {
makeWidget({ 0, 0 }, { 30, 28 }, WidgetType::wt_7, 0), // 0
makeWidget({ 30, 0 }, { 30, 28 }, WidgetType::wt_7, 0), // 1
makeWidget({ 60, 0 }, { 30, 28 }, WidgetType::wt_7, 0), // 2
makeWidget({ 0, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::primary), // 0
makeWidget({ 30, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::primary), // 1
makeWidget({ 60, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::primary), // 2
makeWidget({ 104, 0 }, { 30, 28 }, WidgetType::wt_7, 1), // 3
makeWidget({ 134, 0 }, { 30, 28 }, WidgetType::wt_7, 1), // 4
makeWidget({ 164, 0 }, { 30, 28 }, WidgetType::wt_7, 1), // 5
makeWidget({ 104, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::secondary), // 3
makeWidget({ 134, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::secondary), // 4
makeWidget({ 164, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::secondary), // 5
makeWidget({ 267, 0 }, { 30, 28 }, WidgetType::wt_7, 2), // 6
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::none, 0), // 7
makeWidget({ 357, 0 }, { 30, 28 }, WidgetType::wt_7, 2), // 8
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::none, 0), // 9
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::none, 0), // 10
makeWidget({ 267, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::tertiary), // 6
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::none, WindowColour::primary), // 7
makeWidget({ 357, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::tertiary), // 8
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::none, WindowColour::primary), // 9
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::none, WindowColour::primary), // 10
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::none, 0), // 11
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::none, 0), // 12
makeWidget({ 460, 0 }, { 30, 28 }, WidgetType::wt_7, 3), // 13
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::none, WindowColour::primary), // 11
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::none, WindowColour::primary), // 12
makeWidget({ 460, 0 }, { 30, 28 }, WidgetType::wt_7, WindowColour::quaternary), // 13
widgetEnd(),
};
@ -92,18 +92,18 @@ namespace OpenLoco::Ui::Windows::ToolbarTop::Editor
window->widgets = _widgets;
window->enabled_widgets = (1 << Common::Widx::loadsave_menu) | (1 << Common::Widx::audio_menu) | (1 << Common::Widx::zoom_menu) | (1 << Common::Widx::rotate_menu) | (1 << Common::Widx::view_menu) | (1 << Common::Widx::terraform_menu) | (1 << Widx::map_generation_menu) | (1 << Common::Widx::road_menu) | (1 << Common::Widx::towns_menu);
window->initScrollWidgets();
window->colours[0] = Colour::grey;
window->colours[1] = Colour::grey;
window->colours[2] = Colour::grey;
window->colours[3] = Colour::grey;
window->setColour(WindowColour::primary, Colour::grey);
window->setColour(WindowColour::secondary, Colour::grey);
window->setColour(WindowColour::tertiary, Colour::grey);
window->setColour(WindowColour::quaternary, Colour::grey);
auto skin = ObjectManager::get<InterfaceSkinObject>();
if (skin != nullptr)
{
window->colours[0] = skin->colour_12;
window->colours[1] = skin->colour_13;
window->colours[2] = skin->colour_14;
window->colours[3] = skin->colour_15;
window->setColour(WindowColour::primary, skin->colour_12);
window->setColour(WindowColour::secondary, skin->colour_13);
window->setColour(WindowColour::tertiary, skin->colour_14);
window->setColour(WindowColour::quaternary, skin->colour_15);
}
}
@ -303,12 +303,12 @@ namespace OpenLoco::Ui::Windows::ToolbarTop::Editor
if (!Audio::isAudioEnabled())
{
window->activated_widgets |= (1 << Common::Widx::audio_menu);
window->widgets[Common::Widx::audio_menu].image = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_audio_inactive, window->colours[0]);
window->widgets[Common::Widx::audio_menu].image = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_audio_inactive, window->getColour(WindowColour::primary));
}
else
{
window->activated_widgets &= ~(1 << Common::Widx::audio_menu);
window->widgets[Common::Widx::audio_menu].image = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_audio_active, window->colours[0]);
window->widgets[Common::Widx::audio_menu].image = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_audio_active, window->getColour(WindowColour::primary));
}
window->widgets[Common::Widx::loadsave_menu].image = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_loadsave, 0);

View File

@ -64,7 +64,7 @@ namespace OpenLoco::Ui::Windows::ToolbarTop::Common
y--;
auto interface = ObjectManager::get<InterfaceSkinObject>();
uint32_t bgImage = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_empty_transparent, self->colours[2]);
uint32_t bgImage = Gfx::recolour(interface->img + InterfaceSkin::ImageIds::toolbar_empty_transparent, self->getColour(WindowColour::tertiary));
if (Input::isDropdownActive(Ui::WindowType::topToolbar, Widx::road_menu))
{

View File

@ -47,15 +47,15 @@ namespace OpenLoco::Ui::Windows::TownList
const uint64_t enabledWidgets = (1 << widx::close_button) | (1 << widx::tab_town_list) | (1 << widx::tab_build_town) | (1 << widx::tab_build_buildings) | (1 << widx::tab_build_misc_buildings);
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_25, 0, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 155 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_town_list), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_build_town), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_build_buildings), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_build_misc_buildings)
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_25, WindowColour::primary, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 155 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_town_list), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_build_town), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_build_buildings), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_build_misc_buildings)
static void prepareDraw(Window* self);
static void repositionTabs(Window* self);
@ -87,11 +87,11 @@ namespace OpenLoco::Ui::Windows::TownList
Widget widgets[] = {
commonWidgets(600, 197, StringIds::title_towns),
makeWidget({ 4, 43 }, { 200, 12 }, WidgetType::wt_14, 1, ImageIds::null, StringIds::tooltip_sort_by_name),
makeWidget({ 204, 43 }, { 80, 12 }, WidgetType::wt_14, 1, ImageIds::null, StringIds::tooltip_sort_town_type),
makeWidget({ 284, 43 }, { 70, 12 }, WidgetType::wt_14, 1, ImageIds::null, StringIds::tooltip_sort_population),
makeWidget({ 354, 43 }, { 70, 12 }, WidgetType::wt_14, 1, ImageIds::null, StringIds::tooltip_sort_stations),
makeWidget({ 3, 56 }, { 594, 126 }, WidgetType::scrollview, 1, 2),
makeWidget({ 4, 43 }, { 200, 12 }, WidgetType::wt_14, WindowColour::secondary, ImageIds::null, StringIds::tooltip_sort_by_name),
makeWidget({ 204, 43 }, { 80, 12 }, WidgetType::wt_14, WindowColour::secondary, ImageIds::null, StringIds::tooltip_sort_town_type),
makeWidget({ 284, 43 }, { 70, 12 }, WidgetType::wt_14, WindowColour::secondary, ImageIds::null, StringIds::tooltip_sort_population),
makeWidget({ 354, 43 }, { 70, 12 }, WidgetType::wt_14, WindowColour::secondary, ImageIds::null, StringIds::tooltip_sort_stations),
makeWidget({ 3, 56 }, { 594, 126 }, WidgetType::scrollview, WindowColour::secondary, 2),
widgetEnd(),
};
@ -137,7 +137,7 @@ namespace OpenLoco::Ui::Windows::TownList
// 0x0049A0F8
static void drawScroll(Ui::Window* self, Gfx::Context* context, uint32_t scrollIndex)
{
auto shade = Colour::getShade(self->colours[1], 3);
auto shade = Colour::getShade(self->getColour(WindowColour::secondary), 3);
Gfx::clearSingle(*context, shade);
uint16_t yPos = 0;
@ -549,8 +549,8 @@ namespace OpenLoco::Ui::Windows::TownList
window->flags |= WindowFlags::resizable;
auto skin = ObjectManager::get<InterfaceSkinObject>();
window->colours[0] = skin->colour_0B;
window->colours[1] = skin->colour_0C;
window->setColour(WindowColour::primary, skin->colour_0B);
window->setColour(WindowColour::secondary, skin->colour_0C);
// 0x00499CFC end
@ -594,8 +594,8 @@ namespace OpenLoco::Ui::Windows::TownList
Widget widgets[] = {
commonWidgets(220, 87, StringIds::title_build_new_towns),
makeWidget({ 100, 45 }, { 117, 12 }, WidgetType::wt_18, 1, ImageIds::null, StringIds::tooltip_select_town_size),
makeWidget({ 205, 46 }, { 11, 10 }, WidgetType::wt_11, 1, StringIds::dropdown),
makeWidget({ 100, 45 }, { 117, 12 }, WidgetType::wt_18, WindowColour::secondary, ImageIds::null, StringIds::tooltip_select_town_size),
makeWidget({ 205, 46 }, { 11, 10 }, WidgetType::wt_11, WindowColour::secondary, StringIds::dropdown),
widgetEnd(),
};
@ -782,9 +782,9 @@ namespace OpenLoco::Ui::Windows::TownList
Widget widgets[] = {
commonWidgets(640, 172, StringIds::title_build_new_buildings),
makeWidget({ 2, 45 }, { 573, 112 }, WidgetType::scrollview, 1, 2),
makeWidget({ 575, 46 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::rotate_object, StringIds::rotate_object_90),
makeWidget({ 579, 91 }, { 16, 16 }, WidgetType::wt_10, 1, ImageIds::null, StringIds::tooltip_object_colour),
makeWidget({ 2, 45 }, { 573, 112 }, WidgetType::scrollview, WindowColour::secondary, 2),
makeWidget({ 575, 46 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::rotate_object, StringIds::rotate_object_90),
makeWidget({ 579, 91 }, { 16, 16 }, WidgetType::wt_10, WindowColour::secondary, ImageIds::null, StringIds::tooltip_object_colour),
widgetEnd(),
};
@ -1053,7 +1053,7 @@ namespace OpenLoco::Ui::Windows::TownList
// 0x0049AA1C
static void drawScroll(Ui::Window* self, Gfx::Context* context, uint32_t scrollIndex)
{
auto shade = Colour::getShade(self->colours[1], 3);
auto shade = Colour::getShade(self->getColour(WindowColour::secondary), 3);
Gfx::clearSingle(*context, shade);
uint16_t xPos = 0;
@ -1064,12 +1064,12 @@ namespace OpenLoco::Ui::Windows::TownList
{
if (self->row_info[i] == self->var_846)
{
Gfx::drawRectInset(context, xPos, yPos, 112, 112, self->colours[1], Colour::translucent_flag);
Gfx::drawRectInset(context, xPos, yPos, 112, 112, self->getColour(WindowColour::secondary), Colour::translucent_flag);
}
}
else
{
Gfx::drawRectInset(context, xPos, yPos, 112, 112, self->colours[1], (Colour::translucent_flag | Colour::outline_flag));
Gfx::drawRectInset(context, xPos, yPos, 112, 112, self->getColour(WindowColour::secondary), (Colour::translucent_flag | Colour::outline_flag));
}
auto buildingObj = ObjectManager::get<BuildingObject>(self->row_info[i]);

View File

@ -45,14 +45,14 @@ namespace OpenLoco::Ui::Windows::Town
const uint64_t enabledWidgets = (1 << widx::caption) | (1 << widx::close_button) | (1 << widx::tab_town) | (1 << widx::tab_population) | (1 << widx::tab_company_ratings);
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_25, 0, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 120 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_town), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_population_graph), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_town_ratings_each_company)
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { frameWidth, frameHeight }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { frameWidth - 2, 13 }, WidgetType::caption_25, WindowColour::primary, windowCaptionId), \
makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { frameWidth, 120 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_town), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_population_graph), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_town_ratings_each_company)
// Defined at the bottom of this file.
static void prepareDraw(Window* self);
@ -78,11 +78,11 @@ namespace OpenLoco::Ui::Windows::Town
static Widget widgets[] = {
commonWidgets(223, 161, StringIds::title_town),
makeWidget({ 3, 44 }, { 195, 104 }, WidgetType::viewport, 1, 0xFFFFFFFE),
makeWidget({ 3, 139 }, { 195, 21 }, WidgetType::wt_13, 1),
makeWidget({ 0, 0 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::null, StringIds::move_main_view_to_show_this),
makeWidget({ 198, 44 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::town_expand, StringIds::expand_this_town),
makeWidget({ 198, 68 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::rubbish_bin, StringIds::demolish_this_town),
makeWidget({ 3, 44 }, { 195, 104 }, WidgetType::viewport, WindowColour::secondary, 0xFFFFFFFE),
makeWidget({ 3, 139 }, { 195, 21 }, WidgetType::wt_13, WindowColour::secondary),
makeWidget({ 0, 0 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::null, StringIds::move_main_view_to_show_this),
makeWidget({ 198, 44 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::town_expand, StringIds::expand_this_town),
makeWidget({ 198, 68 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::rubbish_bin, StringIds::demolish_this_town),
widgetEnd(),
};
@ -353,8 +353,8 @@ namespace OpenLoco::Ui::Windows::Town
auto skin = ObjectManager::get<InterfaceSkinObject>();
if (skin != nullptr)
{
window->colours[0] = skin->colour_0B;
window->colours[1] = skin->colour_0C;
window->setColour(WindowColour::primary, skin->colour_0B);
window->setColour(WindowColour::secondary, skin->colour_0C);
}
// 0x00499C0D end
@ -414,7 +414,7 @@ namespace OpenLoco::Ui::Windows::Town
args.push(yTick);
const uint16_t xPos = 39;
Gfx::drawRect(clipped, xPos, yPos, 241, 1, Colour::getShade(self->colours[1], 4));
Gfx::drawRect(clipped, xPos, yPos, 241, 1, Colour::getShade(self->getColour(WindowColour::secondary), 4));
Gfx::drawString_494C78(*clipped, xPos, yPos - 6, Colour::black, StringIds::population_graph_people, &args);
@ -441,7 +441,7 @@ namespace OpenLoco::Ui::Windows::Town
Gfx::drawStringCentred(*clipped, xPos, yPos, Colour::black, StringIds::population_graph_year, &args);
}
Gfx::drawRect(clipped, xPos, 11, 1, self->height - 66, Colour::getShade(self->colours[1], 4));
Gfx::drawRect(clipped, xPos, 11, 1, self->height - 66, Colour::getShade(self->getColour(WindowColour::secondary), 4));
}
// Draw population graph
@ -450,7 +450,7 @@ namespace OpenLoco::Ui::Windows::Town
// Do not draw current segment yet; it may be zeroed.
if (i < town->history_size - 1)
Gfx::drawLine(clipped, xPos, yPos1, xPos + 1, yPos2, Colour::getShade(self->colours[1], 7));
Gfx::drawLine(clipped, xPos, yPos1, xPos + 1, yPos2, Colour::getShade(self->getColour(WindowColour::secondary), 7));
month--;
if (month < 0)
@ -758,7 +758,7 @@ namespace OpenLoco::Ui::Windows::Town
InterfaceSkin::ImageIds::tab_population_frame7,
};
uint32_t imageId = Gfx::recolour(skin->img, self->colours[1]);
uint32_t imageId = Gfx::recolour(skin->img, self->getColour(WindowColour::secondary));
if (self->current_tab == widx::tab_population - widx::tab_town)
imageId += populationTabImageIds[(self->frame_no / 4) % std::size(populationTabImageIds)];
else

View File

@ -19,7 +19,7 @@ namespace OpenLoco::Ui::Windows::Tutorial
constexpr Gfx::ui_size_t windowSize = { 140, 29 };
Widget widgets[] = {
makeWidget({ 0, 0 }, windowSize, WidgetType::wt_3, 0),
makeWidget({ 0, 0 }, windowSize, WidgetType::wt_3, WindowColour::primary),
widgetEnd(),
};
@ -45,8 +45,8 @@ namespace OpenLoco::Ui::Windows::Tutorial
auto skin = ObjectManager::get<InterfaceSkinObject>();
if (skin != nullptr)
{
window->colours[0] = Colour::translucent(skin->colour_06);
window->colours[1] = Colour::translucent(skin->colour_07);
window->setColour(WindowColour::primary, Colour::translucent(skin->colour_06));
window->setColour(WindowColour::secondary, Colour::translucent(skin->colour_07));
}
return window;

View File

@ -47,16 +47,16 @@ namespace OpenLoco::Ui::Windows::Vehicle
tabRoute = 8,
};
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { (frameWidth), (frameHeight) }, WidgetType::frame, 0), \
makeWidget({ 1, 1 }, { (frameWidth)-2, 13 }, WidgetType::caption_24, 0, windowCaptionId), \
makeWidget({ (frameWidth)-15, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { 265, 136 }, WidgetType::panel, 1), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab_vehicle_background, StringIds::tooltip_vehicle_tab_main), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab_vehicle_background, StringIds::tooltip_vehicle_tab_details), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab_vehicle_background, StringIds::tooltip_vehicle_tab_cargo), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab_vehicle_background, StringIds::tooltip_vehicle_tab_finance), \
makeRemapWidget({ 158, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab_vehicle_background, StringIds::tooltip_vehicle_tab_route)
#define commonWidgets(frameWidth, frameHeight, windowCaptionId) \
makeWidget({ 0, 0 }, { (frameWidth), (frameHeight) }, WidgetType::frame, WindowColour::primary), \
makeWidget({ 1, 1 }, { (frameWidth)-2, 13 }, WidgetType::caption_24, WindowColour::primary, windowCaptionId), \
makeWidget({ (frameWidth)-15, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window), \
makeWidget({ 0, 41 }, { 265, 136 }, WidgetType::panel, WindowColour::secondary), \
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab_vehicle_background, StringIds::tooltip_vehicle_tab_main), \
makeRemapWidget({ 34, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab_vehicle_background, StringIds::tooltip_vehicle_tab_details), \
makeRemapWidget({ 65, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab_vehicle_background, StringIds::tooltip_vehicle_tab_cargo), \
makeRemapWidget({ 96, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab_vehicle_background, StringIds::tooltip_vehicle_tab_finance), \
makeRemapWidget({ 158, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab_vehicle_background, StringIds::tooltip_vehicle_tab_route)
constexpr uint64_t enabledWidgets = (1 << closeButton) | (1 << tabMain) | (1 << tabDetails) | (1 << tabCargo) | (1 << tabFinances) | (1 << tabRoute);
@ -105,10 +105,10 @@ namespace OpenLoco::Ui::Windows::Vehicle
static Widget widgets[] = {
commonWidgets(265, 177, StringIds::title_vehicle_details),
makeWidget({ 240, 44 }, { 24, 24 }, WidgetType::wt_9, 1, -1, StringIds::tooltip_build_new_vehicle_for),
makeWidget({ 240, 68 }, { 24, 24 }, WidgetType::wt_9, 1, -1, StringIds::tooltip_remove_from_track),
makeWidget({ 240, 96 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::rubbish_bin, StringIds::tooltip_sell_or_drag_vehicle),
makeWidget({ 3, 44 }, { 237, 110 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 240, 44 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, -1, StringIds::tooltip_build_new_vehicle_for),
makeWidget({ 240, 68 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, -1, StringIds::tooltip_remove_from_track),
makeWidget({ 240, 96 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::rubbish_bin, StringIds::tooltip_sell_or_drag_vehicle),
makeWidget({ 3, 44 }, { 237, 110 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
widgetEnd()
};
}
@ -131,8 +131,8 @@ namespace OpenLoco::Ui::Windows::Vehicle
static Widget widgets[] = {
commonWidgets(265, 177, StringIds::title_vehicle_cargo),
makeWidget({ 240, 44 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::refit_cargo_button, StringIds::refit_vehicle_tip),
makeWidget({ 3, 44 }, { 259, 120 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 240, 44 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::refit_cargo_button, StringIds::refit_vehicle_tip),
makeWidget({ 3, 44 }, { 259, 120 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
widgetEnd()
};
}
@ -180,16 +180,16 @@ namespace OpenLoco::Ui::Windows::Vehicle
static Widget widgets[] = {
commonWidgets(265, 189, StringIds::title_vehicle_route),
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::none, 0),
makeWidget({ 3, 44 }, { 118, 12 }, WidgetType::wt_11, 1, StringIds::local_mode_button),
makeWidget({ 121, 44 }, { 119, 12 }, WidgetType::wt_11, 1, StringIds::express_mode_button),
makeWidget({ 3, 58 }, { 237, 120 }, WidgetType::scrollview, 1, Scrollbars::vertical, StringIds::tooltip_route_scrollview),
makeWidget({ 240, 44 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::route_force_unload, StringIds::tooltip_route_insert_force_unload),
makeWidget({ 240, 68 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::route_wait, StringIds::tooltip_route_insert_wait_full_cargo),
makeWidget({ 240, 92 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::route_skip, StringIds::tooltip_route_skip_next_order),
makeWidget({ 240, 116 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::route_delete, StringIds::tooltip_route_delete_order),
makeWidget({ 240, 140 }, { 24, 12 }, WidgetType::wt_9, 1, ImageIds::red_arrow_up, StringIds::tooltip_route_move_order_up),
makeWidget({ 240, 152 }, { 24, 12 }, WidgetType::wt_9, 1, ImageIds::red_arrow_down, StringIds::tooltip_route_move_order_down),
makeWidget({ 0, 0 }, { 1, 1 }, WidgetType::none, WindowColour::primary),
makeWidget({ 3, 44 }, { 118, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::local_mode_button),
makeWidget({ 121, 44 }, { 119, 12 }, WidgetType::wt_11, WindowColour::secondary, StringIds::express_mode_button),
makeWidget({ 3, 58 }, { 237, 120 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical, StringIds::tooltip_route_scrollview),
makeWidget({ 240, 44 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::route_force_unload, StringIds::tooltip_route_insert_force_unload),
makeWidget({ 240, 68 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::route_wait, StringIds::tooltip_route_insert_wait_full_cargo),
makeWidget({ 240, 92 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::route_skip, StringIds::tooltip_route_skip_next_order),
makeWidget({ 240, 116 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::route_delete, StringIds::tooltip_route_delete_order),
makeWidget({ 240, 140 }, { 24, 12 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::red_arrow_up, StringIds::tooltip_route_move_order_up),
makeWidget({ 240, 152 }, { 24, 12 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::red_arrow_down, StringIds::tooltip_route_move_order_down),
widgetEnd(),
};
}
@ -220,14 +220,14 @@ namespace OpenLoco::Ui::Windows::Vehicle
static Widget widgets[] = {
commonWidgets(265, 177, StringIds::stringid),
makeWidget({ 3, 44 }, { 237, 120 }, WidgetType::viewport, 1),
makeWidget({ 3, 155 }, { 237, 21 }, WidgetType::wt_13, 1),
makeWidget({ 240, 46 }, { 24, 115 }, WidgetType::wt_5, 1),
makeWidget({ 240, 44 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::red_flag, StringIds::tooltip_stop_start),
makeWidget({ 240, 68 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::null, StringIds::tooltip_remove_from_track),
makeWidget({ 240, 92 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::pass_signal, StringIds::tooltip_pass_signal_at_danger),
makeWidget({ 240, 116 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::construction_right_turnaround, StringIds::tooltip_change_direction),
makeWidget({ 0, 0 }, { 24, 24 }, WidgetType::wt_9, 1, ImageIds::null, StringIds::move_main_view_to_show_this),
makeWidget({ 3, 44 }, { 237, 120 }, WidgetType::viewport, WindowColour::secondary),
makeWidget({ 3, 155 }, { 237, 21 }, WidgetType::wt_13, WindowColour::secondary),
makeWidget({ 240, 46 }, { 24, 115 }, WidgetType::wt_5, WindowColour::secondary),
makeWidget({ 240, 44 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::red_flag, StringIds::tooltip_stop_start),
makeWidget({ 240, 68 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::null, StringIds::tooltip_remove_from_track),
makeWidget({ 240, 92 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::pass_signal, StringIds::tooltip_pass_signal_at_danger),
makeWidget({ 240, 116 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::construction_right_turnaround, StringIds::tooltip_change_direction),
makeWidget({ 0, 0 }, { 24, 24 }, WidgetType::wt_9, WindowColour::secondary, ImageIds::null, StringIds::move_main_view_to_show_this),
widgetEnd()
};
@ -358,7 +358,7 @@ namespace OpenLoco::Ui::Windows::Vehicle
_dragVehicleHead = EntityId::null;
const auto* skin = ObjectManager::get<InterfaceSkinObject>();
self->colours[1] = skin->colour_0A;
self->setColour(WindowColour::secondary, skin->colour_0A);
return self;
}
@ -417,7 +417,7 @@ namespace OpenLoco::Ui::Windows::Vehicle
self->y + widget->top,
widget->width(),
widget->height(),
self->colours[1],
self->getColour(WindowColour::secondary),
2,
0);
@ -547,7 +547,7 @@ namespace OpenLoco::Ui::Windows::Vehicle
self->y + widget->top,
widget->width(),
widget->height(),
self->colours[1],
self->getColour(WindowColour::secondary),
dropdownCount,
0);
@ -897,7 +897,7 @@ namespace OpenLoco::Ui::Windows::Vehicle
context,
self->x + speedWidget.left,
self->y + speedWidget.top + 10,
Gfx::recolour(ImageIds::speed_control_track, self->colours[1]));
Gfx::recolour(ImageIds::speed_control_track, self->getColour(WindowColour::secondary)));
Gfx::drawStringCentred(
*context,
@ -917,7 +917,7 @@ namespace OpenLoco::Ui::Windows::Vehicle
context,
self->x + speedWidget.left + 1,
self->y + speedWidget.top + 57 - veh->var_6E,
Gfx::recolour(ImageIds::speed_control_thumb, self->colours[1]));
Gfx::recolour(ImageIds::speed_control_thumb, self->getColour(WindowColour::secondary)));
}
if (self->viewports[0] != nullptr)
@ -1042,7 +1042,7 @@ namespace OpenLoco::Ui::Windows::Vehicle
self->y + widget->top,
widget->width(),
widget->height(),
self->colours[1],
self->getColour(WindowColour::secondary),
2,
0);
@ -1431,7 +1431,7 @@ namespace OpenLoco::Ui::Windows::Vehicle
// 0x004B36A3
static void drawScroll(Window* const self, Gfx::Context* const context, const uint32_t i)
{
Gfx::clearSingle(*context, Colour::getShade(self->colours[1], 4));
Gfx::clearSingle(*context, Colour::getShade(self->getColour(WindowColour::secondary), 4));
auto head = Common::getVehicle(self);
OpenLoco::Vehicles::Vehicle train{ head };
Gfx::point_t pos{ 0, 0 };
@ -1459,7 +1459,7 @@ namespace OpenLoco::Ui::Windows::Vehicle
if (car.front == _dragCarComponent)
{
al = 12;
ah = self->colours[1];
ah = self->getColour(WindowColour::secondary);
}
auto x = Common::sub_4B743B(al, ah, 0, y, car.front, context);
@ -1714,7 +1714,7 @@ namespace OpenLoco::Ui::Windows::Vehicle
// 004B3F62
static void drawScroll(Window* const self, Gfx::Context* const pDrawpixelinfo, const uint32_t i)
{
Gfx::clearSingle(*pDrawpixelinfo, Colour::getShade(self->colours[1], 4));
Gfx::clearSingle(*pDrawpixelinfo, Colour::getShade(self->getColour(WindowColour::secondary), 4));
Vehicles::Vehicle train{ Common::getVehicle(self) };
int16_t y = 0;
for (auto& car : train.cars)
@ -1852,7 +1852,7 @@ namespace OpenLoco::Ui::Windows::Vehicle
self->y + button.top,
button.width(),
button.height(),
self->colours[1],
self->getColour(WindowColour::secondary),
index,
0);
Dropdown::setHighlightedItem(0);
@ -2511,7 +2511,7 @@ namespace OpenLoco::Ui::Windows::Vehicle
auto y = self->widgets[i].top + self->y;
auto width = self->widgets[i].width();
auto height = self->widgets[i].height();
Dropdown::showText(x, y, width, height, self->colours[1], index, 0);
Dropdown::showText(x, y, width, height, self->getColour(WindowColour::secondary), index, 0);
Dropdown::setHighlightedItem(0);
}
@ -3077,7 +3077,7 @@ namespace OpenLoco::Ui::Windows::Vehicle
// 0x004B48BA
static void drawScroll(Window* const self, Gfx::Context* const pDrawpixelinfo, const uint32_t i)
{
Gfx::clearSingle(*pDrawpixelinfo, Colour::getShade(self->colours[1], 4));
Gfx::clearSingle(*pDrawpixelinfo, Colour::getShade(self->getColour(WindowColour::secondary), 4));
auto head = Common::getVehicle(self);
Vehicles::Vehicle train(head);

View File

@ -53,22 +53,22 @@ namespace OpenLoco::Ui::Windows::VehicleList
};
Widget _widgets[] = {
makeWidget({ 0, 0 }, { 550, 213 }, WidgetType::frame, 0),
makeWidget({ 1, 1 }, { 548, 13 }, WidgetType::caption_24, 0),
makeWidget({ 535, 2 }, { 13, 13 }, WidgetType::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 41 }, { 550, 172 }, WidgetType::panel, 1),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_trains),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_buses),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_trucks),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_trams),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_aircraft),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, 1, ImageIds::tab, StringIds::tooltip_ships),
makeWidget({ 0, 14 }, { 26, 26 }, WidgetType::wt_9, 0, StringIds::null, StringIds::tooltip_select_company),
makeWidget({ 4, 43 }, { 310, 12 }, WidgetType::wt_14, 1, StringIds::null, StringIds::tooltip_sort_by_name),
makeWidget({ 314, 43 }, { 100, 12 }, WidgetType::wt_14, 1, StringIds::null, StringIds::tooltip_sort_by_profit),
makeWidget({ 414, 43 }, { 65, 12 }, WidgetType::wt_14, 1, StringIds::null, StringIds::tooltip_sort_by_age),
makeWidget({ 479, 43 }, { 67, 12 }, WidgetType::wt_14, 1, StringIds::null, StringIds::tooltip_sort_by_reliability),
makeWidget({ 3, 56 }, { 544, 138 }, WidgetType::scrollview, 1, Scrollbars::vertical),
makeWidget({ 0, 0 }, { 550, 213 }, WidgetType::frame, WindowColour::primary),
makeWidget({ 1, 1 }, { 548, 13 }, WidgetType::caption_24, WindowColour::primary),
makeWidget({ 535, 2 }, { 13, 13 }, WidgetType::wt_9, WindowColour::primary, ImageIds::close_button, StringIds::tooltip_close_window),
makeWidget({ 0, 41 }, { 550, 172 }, WidgetType::panel, WindowColour::secondary),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_trains),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_buses),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_trucks),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_trams),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_aircraft),
makeRemapWidget({ 3, 15 }, { 31, 27 }, WidgetType::wt_8, WindowColour::secondary, ImageIds::tab, StringIds::tooltip_ships),
makeWidget({ 0, 14 }, { 26, 26 }, WidgetType::wt_9, WindowColour::primary, StringIds::null, StringIds::tooltip_select_company),
makeWidget({ 4, 43 }, { 310, 12 }, WidgetType::wt_14, WindowColour::secondary, StringIds::null, StringIds::tooltip_sort_by_name),
makeWidget({ 314, 43 }, { 100, 12 }, WidgetType::wt_14, WindowColour::secondary, StringIds::null, StringIds::tooltip_sort_by_profit),
makeWidget({ 414, 43 }, { 65, 12 }, WidgetType::wt_14, WindowColour::secondary, StringIds::null, StringIds::tooltip_sort_by_age),
makeWidget({ 479, 43 }, { 67, 12 }, WidgetType::wt_14, WindowColour::secondary, StringIds::null, StringIds::tooltip_sort_by_reliability),
makeWidget({ 3, 56 }, { 544, 138 }, WidgetType::scrollview, WindowColour::secondary, Scrollbars::vertical),
widgetEnd()
};
@ -334,7 +334,7 @@ namespace OpenLoco::Ui::Windows::VehicleList
self->frame_no = 0;
auto skin = ObjectManager::get<InterfaceSkinObject>();
self->colours[1] = skin->colour_0A;
self->setColour(WindowColour::secondary, skin->colour_0A);
disableUnavailableVehicleTypes(self);
@ -522,7 +522,7 @@ namespace OpenLoco::Ui::Windows::VehicleList
// 0x004C21CD
static void drawScroll(Window* self, Gfx::Context* context, uint32_t scrollIndex)
{
auto shade = Colour::getShade(self->colours[1], 1);
auto shade = Colour::getShade(self->getColour(WindowColour::secondary), 1);
Gfx::clearSingle(*context, shade);
auto yPos = 0;
@ -541,7 +541,7 @@ namespace OpenLoco::Ui::Windows::VehicleList
// Highlight selection.
if (head->id == self->row_hover)
Gfx::drawRect(context, 0, yPos, self->width, self->row_height, Colour::getShade(self->colours[1], 0));
Gfx::drawRect(context, 0, yPos, self->width, self->row_height, Colour::getShade(self->getColour(WindowColour::secondary), 0));
// Draw vehicle at the bottom of the row.
drawVehicle(head, context, yPos + (self->row_height - 28) / 2 + 6);