From fb91cefe00bc7cd91029082500802028e87832e7 Mon Sep 17 00:00:00 2001 From: Aaron van Geffen Date: Mon, 23 Dec 2024 20:45:57 +0100 Subject: [PATCH] Fix guest inventories crashing on particular items (#23469) * InventoryFormatItem: adjust formatter increments for lack of ImageIds * OnDrawInventory: adjust itemNameWidth to account for icon offset * OnDrawInventory: Improve icon/label vertical alignment --- src/openrct2-ui/windows/Guest.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/openrct2-ui/windows/Guest.cpp b/src/openrct2-ui/windows/Guest.cpp index 44c6660c1d..85615c8aa0 100644 --- a/src/openrct2-ui/windows/Guest.cpp +++ b/src/openrct2-ui/windows/Guest.cpp @@ -1634,7 +1634,7 @@ namespace OpenRCT2::Ui::Windows if (invRide != nullptr) { ft.Rewind(); - ft.Increment(6); + ft.Increment(2); invRide->FormatNameTo(ft); } @@ -1647,7 +1647,7 @@ namespace OpenRCT2::Ui::Windows { case VOUCHER_TYPE_PARK_ENTRY_FREE: ft.Rewind(); - ft.Increment(6); + ft.Increment(2); ft.Add(STR_PEEP_INVENTORY_VOUCHER_PARK_ENTRY_FREE); ft.Add(STR_STRING); ft.Add(parkName); @@ -1657,21 +1657,21 @@ namespace OpenRCT2::Ui::Windows if (invRide != nullptr) { ft.Rewind(); - ft.Increment(6); + ft.Increment(2); ft.Add(STR_PEEP_INVENTORY_VOUCHER_RIDE_FREE); invRide->FormatNameTo(ft); } break; case VOUCHER_TYPE_PARK_ENTRY_HALF_PRICE: ft.Rewind(); - ft.Increment(6); + ft.Increment(2); ft.Add(STR_PEEP_INVENTORY_VOUCHER_PARK_ENTRY_HALF_PRICE); ft.Add(STR_STRING); ft.Add(parkName); break; case VOUCHER_TYPE_FOOD_OR_DRINK_FREE: ft.Rewind(); - ft.Increment(6); + ft.Increment(2); ft.Add(STR_PEEP_INVENTORY_VOUCHER_FOOD_OR_DRINK_FREE); ft.Add(GetShopItemDescriptor(guest.VoucherShopItem).Naming.Singular); break; @@ -1688,7 +1688,7 @@ namespace OpenRCT2::Ui::Windows if (invRide != nullptr) { ft.Rewind(); - ft.Increment(6); + ft.Increment(2); invRide->FormatNameTo(ft); } break; @@ -1697,7 +1697,7 @@ namespace OpenRCT2::Ui::Windows if (invRide != nullptr) { ft.Rewind(); - ft.Increment(6); + ft.Increment(2); invRide->FormatNameTo(ft); } break; @@ -1706,7 +1706,7 @@ namespace OpenRCT2::Ui::Windows if (invRide != nullptr) { ft.Rewind(); - ft.Increment(6); + ft.Increment(2); invRide->FormatNameTo(ft); } break; @@ -1737,7 +1737,7 @@ namespace OpenRCT2::Ui::Windows auto& widget = widgets[WIDX_PAGE_BACKGROUND]; auto screenCoords = windowPos + ScreenCoordsXY{ widget.left + 4, widget.top + 2 }; - int32_t itemNameWidth = widget.width() - 8; + int32_t itemNameWidth = widget.width() - 24; int32_t maxY = windowPos.y + height - 22; int32_t numItems = 0; @@ -1756,6 +1756,7 @@ namespace OpenRCT2::Ui::Windows GfxDrawSprite(dpi, imageId, screenCoords); screenCoords.x += 16; + screenCoords.y += 1; screenCoords.y += DrawTextWrapped(dpi, screenCoords, itemNameWidth, STR_BLACK_STRING, ft); screenCoords.x -= 16;