1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-26 16:24:35 +01:00

Fix accidental revert of widget changes

This commit is contained in:
Gymnasiast
2021-10-17 13:43:38 +02:00
parent 2ad0ace1cc
commit 4890903241
2 changed files with 38 additions and 37 deletions

View File

@@ -825,20 +825,22 @@ static void window_editor_object_selection_invalidate(rct_window* w)
// Set window title and buttons
auto ft = Formatter::Common();
ft.Add<rct_string_id>(ObjectSelectionPages[w->selected_tab].Caption);
auto& titleWidget = w->widgets[WIDX_TITLE];
auto& installTrackWidget = w->widgets[WIDX_INSTALL_TRACK];
if (gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER)
{
w->widgets[WIDX_TITLE].text = STR_TRACK_DESIGNS_MANAGER_SELECT_RIDE_TYPE;
w->widgets[WIDX_INSTALL_TRACK].type = WindowWidgetType::Button;
titleWidget.text = STR_TRACK_DESIGNS_MANAGER_SELECT_RIDE_TYPE;
installTrackWidget.type = WindowWidgetType::Button;
}
else if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER)
{
w->widgets[WIDX_TITLE].text = STR_ROLLER_COASTER_DESIGNER_SELECT_RIDE_TYPES_VEHICLES;
w->widgets[WIDX_INSTALL_TRACK].type = WindowWidgetType::Empty;
titleWidget.text = STR_ROLLER_COASTER_DESIGNER_SELECT_RIDE_TYPES_VEHICLES;
installTrackWidget.type = WindowWidgetType::Empty;
}
else
{
w->widgets[WIDX_TITLE].text = STR_OBJECT_SELECTION;
w->widgets[WIDX_INSTALL_TRACK].type = WindowWidgetType::Empty;
titleWidget.text = STR_OBJECT_SELECTION;
installTrackWidget.type = WindowWidgetType::Empty;
}
// Align tabs, hide advanced ones
@@ -846,17 +848,17 @@ static void window_editor_object_selection_invalidate(rct_window* w)
int32_t x = 3;
for (size_t i = 0; i < std::size(ObjectSelectionPages); i++)
{
auto widget = &w->widgets[WIDX_TAB_1 + i];
auto& widget = w->widgets[WIDX_TAB_1 + i];
if ((!advancedMode && ObjectSelectionPages[i].IsAdvanced)
|| ObjectSelectionPages[i].Image == static_cast<uint32_t>(SPR_NONE))
{
widget->type = WindowWidgetType::Empty;
widget.type = WindowWidgetType::Empty;
}
else
{
widget->type = WindowWidgetType::Tab;
widget->left = x;
widget->right = x + 30;
widget.type = WindowWidgetType::Tab;
widget.left = x;
widget.right = x + 30;
x += 31;
}
}
@@ -950,8 +952,8 @@ static void window_editor_object_selection_invalidate(rct_window* w)
static void window_editor_object_selection_paint_descriptions(rct_window* w, rct_drawpixelinfo* dpi)
{
auto widget = &w->widgets[WIDX_PREVIEW];
auto screenPos = w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_LIST].right + 4, widget->bottom + 23 };
const auto& widget = w->widgets[WIDX_PREVIEW];
auto screenPos = w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_LIST].right + 4, widget.bottom + 23 };
auto width = w->windowPos.x + w->width - screenPos.x - 4;
auto description = object_get_description(_loadedObject.get());
@@ -1069,18 +1071,17 @@ static void window_editor_object_selection_paint_debug_data(rct_window* w, rct_d
static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinfo* dpi)
{
int32_t width;
rct_widget* widget;
WindowDrawWidgets(w, dpi);
// Draw tabs
for (size_t i = 0; i < std::size(ObjectSelectionPages); i++)
{
widget = &w->widgets[WIDX_TAB_1 + i];
if (widget->type != WindowWidgetType::Empty)
const auto& widget = w->widgets[WIDX_TAB_1 + i];
if (widget.type != WindowWidgetType::Empty)
{
auto image = ImageId(ObjectSelectionPages[i].Image);
auto screenPos = w->windowPos + ScreenCoordsXY{ widget->left, widget->top };
auto screenPos = w->windowPos + ScreenCoordsXY{ widget.left, widget.top };
gfx_draw_sprite(dpi, image, screenPos);
}
}
@@ -1096,8 +1097,8 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf
{
for (int32_t i = 0; i < 7; i++)
{
widget = &w->widgets[WIDX_FILTER_RIDE_TAB_ALL + i];
if (widget->type == WindowWidgetType::Empty)
const auto& widget = w->widgets[WIDX_FILTER_RIDE_TAB_ALL + i];
if (widget.type == WindowWidgetType::Empty)
continue;
int32_t spriteIndex = ride_tabs[i];
@@ -1108,17 +1109,17 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf
}
spriteIndex += (i == 4 ? ThrillRidesTabAnimationSequence[frame] : frame);
auto screenPos = w->windowPos + ScreenCoordsXY{ widget->left, widget->top };
auto screenPos = w->windowPos + ScreenCoordsXY{ widget.left, widget.top };
gfx_draw_sprite(dpi, ImageId(spriteIndex, w->colours[1]), screenPos);
}
}
// Preview background
widget = &w->widgets[WIDX_PREVIEW];
const auto& previewWidget = w->widgets[WIDX_PREVIEW];
gfx_fill_rect(
dpi,
{ w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 },
w->windowPos + ScreenCoordsXY{ widget->right - 1, widget->bottom - 1 } },
{ w->windowPos + ScreenCoordsXY{ previewWidget.left + 1, previewWidget.top + 1 },
w->windowPos + ScreenCoordsXY{ previewWidget.right - 1, previewWidget.bottom - 1 } },
ColourMapA[w->colours[1]].darkest);
// Draw number of selected items
@@ -1136,25 +1137,25 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf
}
// Draw sort button text
widget = &w->widgets[WIDX_LIST_SORT_TYPE];
if (widget->type != WindowWidgetType::Empty)
const auto& listSortTypeWidget = w->widgets[WIDX_LIST_SORT_TYPE];
if (listSortTypeWidget.type != WindowWidgetType::Empty)
{
auto ft = Formatter();
auto stringId = _listSortType == RIDE_SORT_TYPE ? static_cast<rct_string_id>(_listSortDescending ? STR_DOWN : STR_UP)
: STR_NONE;
ft.Add<rct_string_id>(stringId);
auto screenPos = w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 };
DrawTextEllipsised(dpi, screenPos, widget->width(), STR_OBJECTS_SORT_TYPE, ft, { w->colours[1] });
auto screenPos = w->windowPos + ScreenCoordsXY{ listSortTypeWidget.left + 1, listSortTypeWidget.top + 1 };
DrawTextEllipsised(dpi, screenPos, listSortTypeWidget.width(), STR_OBJECTS_SORT_TYPE, ft, { w->colours[1] });
}
widget = &w->widgets[WIDX_LIST_SORT_RIDE];
if (widget->type != WindowWidgetType::Empty)
const auto& listSortRideWidget = w->widgets[WIDX_LIST_SORT_RIDE];
if (listSortRideWidget.type != WindowWidgetType::Empty)
{
auto ft = Formatter();
auto stringId = _listSortType == RIDE_SORT_RIDE ? static_cast<rct_string_id>(_listSortDescending ? STR_DOWN : STR_UP)
: STR_NONE;
ft.Add<rct_string_id>(stringId);
auto screenPos = w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 };
DrawTextEllipsised(dpi, screenPos, widget->width(), STR_OBJECTS_SORT_RIDE, ft, { w->colours[1] });
auto screenPos = w->windowPos + ScreenCoordsXY{ listSortRideWidget.left + 1, listSortRideWidget.top + 1 };
DrawTextEllipsised(dpi, screenPos, listSortRideWidget.width(), STR_OBJECTS_SORT_RIDE, ft, { w->colours[1] });
}
if (w->selected_list_item == -1 || _loadedObject == nullptr)
@@ -1163,12 +1164,11 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf
list_item* listItem = &_listItems[w->selected_list_item];
// Draw preview
widget = &w->widgets[WIDX_PREVIEW];
{
rct_drawpixelinfo clipDPI;
auto screenPos = w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 };
width = widget->width() - 1;
int32_t height = widget->height() - 1;
auto screenPos = w->windowPos + ScreenCoordsXY{ previewWidget.left + 1, previewWidget.top + 1 };
width = previewWidget.width() - 1;
int32_t height = previewWidget.height() - 1;
if (clip_drawpixelinfo(&clipDPI, dpi, screenPos, width, height))
{
_loadedObject->DrawPreview(&clipDPI, width, height);
@@ -1177,7 +1177,7 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf
// Draw name of object
{
auto screenPos = w->windowPos + ScreenCoordsXY{ widget->midX() + 1, widget->bottom + 3 };
auto screenPos = w->windowPos + ScreenCoordsXY{ previewWidget.midX() + 1, previewWidget.bottom + 3 };
width = w->width - w->widgets[WIDX_LIST].right - 6;
auto ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
@@ -1188,6 +1188,7 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf
window_editor_object_selection_paint_descriptions(w, dpi);
window_editor_object_selection_paint_debug_data(w, dpi);
}
/**
*
* rct2: 0x006AADA3

View File

@@ -178,7 +178,7 @@ static FootpathMapping _footpathMappings[] = {
{ "FUTRPATH", "rct2tt.footpath_surface.circuitboard", "rct2tt.footpath_surface.queue_circuitboard",
"rct2tt.footpath_railings.circuitboard" },
{ "FUTRPAT2", "rct2tt.footpath_surface.circuitboard", "rct2tt.footpath_surface.queue_circuitboard",
"openrct2.footpath_railings.invisible" },
"rct2tt.footpath_railings.circuitboard_invisible" },
{ "JURRPATH", "rct2tt.footpath_surface.rocky", "rct2.footpath_surface.queue_yellow", "rct2tt.footpath_railings.rocky" },
{ "MEDIPATH", "rct2tt.footpath_surface.medieval", "rct2.footpath_surface.queue_yellow",
"rct2tt.footpath_railings.medieval" },