Rename rct_string_id to StringId

This commit is contained in:
Gymnasiast 2022-07-31 14:22:58 +02:00
parent 6c5bdd5e08
commit d3fd31c611
No known key found for this signature in database
GPG Key ID: DBFFF47AB2CA3EDD
190 changed files with 879 additions and 890 deletions

View File

@ -201,7 +201,7 @@ public:
}
}
rct_window* ShowError(rct_string_id title, rct_string_id message, const Formatter& args) override
rct_window* ShowError(StringId title, StringId message, const Formatter& args) override
{
return WindowErrorOpen(title, message, args);
}

View File

@ -1085,7 +1085,7 @@ void ProcessMouseOver(const ScreenCoordsXY& screenCoords)
CursorID cursorId = CursorID::Arrow;
auto ft = Formatter();
ft.Add<rct_string_id>(STR_NONE);
ft.Add<StringId>(STR_NONE);
SetMapTooltip(ft);
window = window_find_from_point(screenCoords);
@ -1370,7 +1370,7 @@ void InputStateWidgetPressed(
gDropdownLastColourHover = dropdown_index;
WindowTooltipClose();
static constexpr const rct_string_id _colourTooltips[] = {
static constexpr const StringId _colourTooltips[] = {
STR_COLOUR_BLACK_TIP,
STR_COLOUR_GREY_TIP,
STR_COLOUR_WHITE_TIP,

View File

@ -189,7 +189,7 @@ ShortcutInput::ShortcutInput(std::string_view value)
std::string_view ShortcutInput::GetModifierName(uint32_t key, bool localised)
{
static std::unordered_map<uint32_t, std::pair<const char*, rct_string_id>> _keys{
static std::unordered_map<uint32_t, std::pair<const char*, StringId>> _keys{
{ KMOD_SHIFT, { "SHIFT", STR_SHORTCUT_MOD_SHIFT } }, { KMOD_LSHIFT, { "LSHIFT", STR_SHORTCUT_MOD_LSHIFT } },
{ KMOD_RSHIFT, { "RSHIFT", STR_SHORTCUT_MOD_RSHIFT } }, { KMOD_CTRL, { "CTRL", STR_SHORTCUT_MOD_CTRL } },
{ KMOD_LCTRL, { "LCTRL", STR_SHORTCUT_MOD_LCTRL } }, { KMOD_RCTRL, { "RCTRL", STR_SHORTCUT_MOD_RCTRL } },
@ -214,7 +214,7 @@ std::string_view ShortcutInput::GetModifierName(uint32_t key, bool localised)
std::string_view ShortcutInput::GetLocalisedKeyName(uint32_t key)
{
static std::unordered_map<uint32_t, rct_string_id> _keys{
static std::unordered_map<uint32_t, StringId> _keys{
{ SDLK_LEFT, STR_SHORTCUT_LEFT },
{ SDLK_RIGHT, STR_SHORTCUT_RIGHT },
{ SDLK_UP, STR_SHORTCUT_UP },

View File

@ -57,7 +57,7 @@ namespace OpenRCT2::Ui
{
public:
std::string Id;
rct_string_id LocalisedName = STR_NONE;
StringId LocalisedName = STR_NONE;
std::string CustomName;
std::vector<ShortcutInput> Default;
std::vector<ShortcutInput> Current;
@ -71,7 +71,7 @@ namespace OpenRCT2::Ui
{
}
RegisteredShortcut(std::string_view id, rct_string_id localisedName, const std::function<void()>& action)
RegisteredShortcut(std::string_view id, StringId localisedName, const std::function<void()>& action)
: Id(id)
, LocalisedName(localisedName)
, Action(action)
@ -79,8 +79,7 @@ namespace OpenRCT2::Ui
}
RegisteredShortcut(
std::string_view id, rct_string_id localisedName, std::string_view defaultChord,
const std::function<void()>& action)
std::string_view id, StringId localisedName, std::string_view defaultChord, const std::function<void()>& action)
: Id(id)
, LocalisedName(localisedName)
, Default({ defaultChord })
@ -90,7 +89,7 @@ namespace OpenRCT2::Ui
}
RegisteredShortcut(
std::string_view id, rct_string_id localisedName, std::string_view defaultChordA, std::string_view defaultChordB,
std::string_view id, StringId localisedName, std::string_view defaultChordA, std::string_view defaultChordB,
const std::function<void()>& action)
: Id(id)
, LocalisedName(localisedName)

View File

@ -18,9 +18,9 @@ namespace Dropdown
{
struct Item;
constexpr const rct_string_id SeparatorString = 0;
constexpr const rct_string_id FormatColourPicker = 0xFFFE;
constexpr const rct_string_id FormatLandPicker = 0xFFFF;
constexpr const StringId SeparatorString = 0;
constexpr const StringId FormatColourPicker = 0xFFFE;
constexpr const StringId FormatLandPicker = 0xFFFF;
constexpr const int32_t ItemsMaxSize = 512;
enum Flag
@ -67,7 +67,7 @@ namespace Dropdown
struct Item
{
rct_string_id Format;
StringId Format;
int64_t Args;
uint8_t Flags;
@ -89,7 +89,7 @@ namespace Dropdown
struct ItemExt
{
constexpr ItemExt(int32_t _expectedItemIndex, uint32_t _itemFormat, rct_string_id _stringId)
constexpr ItemExt(int32_t _expectedItemIndex, uint32_t _itemFormat, StringId _stringId)
: expectedItemIndex(_expectedItemIndex)
, itemFormat(_itemFormat)
, stringId(_stringId)
@ -98,10 +98,10 @@ namespace Dropdown
int32_t expectedItemIndex;
uint32_t itemFormat;
rct_string_id stringId;
StringId stringId;
};
constexpr ItemExt ToggleOption(int32_t _expectedItemIndex, rct_string_id _stringId)
constexpr ItemExt ToggleOption(int32_t _expectedItemIndex, StringId _stringId)
{
return ItemExt(_expectedItemIndex, STR_TOGGLE_OPTION, _stringId);
}

View File

@ -164,7 +164,7 @@ namespace Graph
{
// Draw month text
auto ft = Formatter();
ft.Add<rct_string_id>(DateGameShortMonthNames[date_get_month((yearOver32 / 4) + MONTH_COUNT)]);
ft.Add<StringId>(DateGameShortMonthNames[date_get_month((yearOver32 / 4) + MONTH_COUNT)]);
DrawTextBasic(
dpi, screenCoords - ScreenCoordsXY{ 0, 10 }, STR_GRAPH_LABEL, ft,
{ FontSpriteBase::SMALL, TextAlignment::CENTRE });

View File

@ -96,7 +96,7 @@ struct WindowThemeDesc
{
rct_windowclass WindowClass;
const utf8* WindowClassSZ;
rct_string_id WindowName;
StringId WindowName;
uint8_t NumColours;
WindowTheme DefaultTheme;
};
@ -232,7 +232,7 @@ const UITheme PredefinedThemeRCT2 = UITheme::CreatePredefined("*RCT2", Predefine
struct PredefinedTheme
{
const UITheme* Theme;
rct_string_id Name;
StringId Name;
};
static constexpr const PredefinedTheme PredefinedThemes[] = {
@ -859,7 +859,7 @@ uint8_t ThemeDescGetNumColours(rct_windowclass wc)
return desc->NumColours;
}
rct_string_id ThemeDescGetName(rct_windowclass wc)
StringId ThemeDescGetName(rct_windowclass wc)
{
const WindowThemeDesc* desc = GetWindowThemeDescriptor(wc);
if (desc == nullptr)

View File

@ -45,4 +45,4 @@ void ThemeDuplicate(const utf8* name);
void ThemeDelete();
uint8_t ThemeDescGetNumColours(rct_windowclass wc);
rct_string_id ThemeDescGetName(rct_windowclass wc);
StringId ThemeDescGetName(rct_windowclass wc);

View File

@ -128,7 +128,7 @@ InteractionInfo ViewportInteractionGetItemLeft(const ScreenCoordsXY& screenCoord
auto parkName = park.Name.c_str();
auto ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(parkName);
SetMapTooltip(ft);
break;
@ -280,7 +280,7 @@ InteractionInfo ViewportInteractionGetItemRight(const ScreenCoordsXY& screenCoor
if (ride != nullptr && ride->status == RideStatus::Closed)
{
auto ft = Formatter();
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
ft.Add<StringId>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
ride->FormatNameTo(ft);
SetMapTooltip(ft);
}
@ -310,11 +310,11 @@ InteractionInfo ViewportInteractionGetItemRight(const ScreenCoordsXY& screenCoor
return info;
auto ft = Formatter();
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
ft.Add<StringId>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
if (tileElement->GetType() == TileElementType::Entrance)
{
rct_string_id stringId;
StringId stringId;
if (tileElement->AsEntrance()->GetEntranceType() == ENTRANCE_TYPE_RIDE_ENTRANCE)
{
if (ride->num_stations > 1)
@ -337,11 +337,11 @@ InteractionInfo ViewportInteractionGetItemRight(const ScreenCoordsXY& screenCoor
stringId = STR_RIDE_EXIT;
}
}
ft.Add<rct_string_id>(stringId);
ft.Add<StringId>(stringId);
}
else if (tileElement->AsTrack()->IsStation())
{
rct_string_id stringId;
StringId stringId;
if (ride->num_stations > 1)
{
stringId = STR_RIDE_STATION_X;
@ -350,7 +350,7 @@ InteractionInfo ViewportInteractionGetItemRight(const ScreenCoordsXY& screenCoor
{
stringId = STR_RIDE_STATION;
}
ft.Add<rct_string_id>(stringId);
ft.Add<StringId>(stringId);
}
else
{
@ -368,7 +368,7 @@ InteractionInfo ViewportInteractionGetItemRight(const ScreenCoordsXY& screenCoor
ride->FormatNameTo(ft);
const auto& rtd = ride->GetRideTypeDescriptor();
ft.Add<rct_string_id>(GetRideComponentName(rtd.NameConvention.station).capitalised);
ft.Add<StringId>(GetRideComponentName(rtd.NameConvention.station).capitalised);
StationIndex::UnderlyingType stationIndex;
if (tileElement->GetType() == TileElementType::Entrance)
@ -393,10 +393,10 @@ InteractionInfo ViewportInteractionGetItemRight(const ScreenCoordsXY& screenCoor
if (banner != nullptr)
{
auto ft = Formatter();
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_BANNER_STRINGID_STRINGID);
ft.Add<StringId>(STR_MAP_TOOLTIP_BANNER_STRINGID_STRINGID);
banner->FormatTextTo(ft);
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
ft.Add<rct_string_id>(wallEntry->name);
ft.Add<StringId>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
ft.Add<StringId>(wallEntry->name);
SetMapTooltip(ft);
return info;
}
@ -412,10 +412,10 @@ InteractionInfo ViewportInteractionGetItemRight(const ScreenCoordsXY& screenCoor
if (banner != nullptr)
{
auto ft = Formatter();
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_BANNER_STRINGID_STRINGID);
ft.Add<StringId>(STR_MAP_TOOLTIP_BANNER_STRINGID_STRINGID);
banner->FormatTextTo(ft);
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
ft.Add<rct_string_id>(sceneryEntry->name);
ft.Add<StringId>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
ft.Add<StringId>(sceneryEntry->name);
SetMapTooltip(ft);
return info;
}
@ -430,10 +430,10 @@ InteractionInfo ViewportInteractionGetItemRight(const ScreenCoordsXY& screenCoor
auto* bannerEntry = get_banner_entry(banner->type);
auto ft = Formatter();
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_BANNER_STRINGID_STRINGID);
ft.Add<StringId>(STR_MAP_TOOLTIP_BANNER_STRINGID_STRINGID);
banner->FormatTextTo(ft, /*addColour*/ true);
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
ft.Add<rct_string_id>(bannerEntry->name);
ft.Add<StringId>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
ft.Add<StringId>(bannerEntry->name);
SetMapTooltip(ft);
return info;
}
@ -458,29 +458,29 @@ InteractionInfo ViewportInteractionGetItemRight(const ScreenCoordsXY& screenCoor
case ViewportInteractionItem::Scenery:
{
auto* sceneryEntry = tileElement->AsSmallScenery()->GetEntry();
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE);
ft.Add<rct_string_id>(sceneryEntry->name);
ft.Add<StringId>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE);
ft.Add<StringId>(sceneryEntry->name);
SetMapTooltip(ft);
return info;
}
case ViewportInteractionItem::Footpath:
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE);
ft.Add<StringId>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE);
if (tileElement->AsPath()->IsQueue())
ft.Add<rct_string_id>(STR_QUEUE_LINE_MAP_TIP);
ft.Add<StringId>(STR_QUEUE_LINE_MAP_TIP);
else
ft.Add<rct_string_id>(STR_FOOTPATH_MAP_TIP);
ft.Add<StringId>(STR_FOOTPATH_MAP_TIP);
SetMapTooltip(ft);
return info;
case ViewportInteractionItem::FootpathItem:
{
auto* pathAddEntry = tileElement->AsPath()->GetAdditionEntry();
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE);
ft.Add<StringId>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE);
if (tileElement->AsPath()->IsBroken())
{
ft.Add<rct_string_id>(STR_BROKEN);
ft.Add<StringId>(STR_BROKEN);
}
ft.Add<rct_string_id>(pathAddEntry != nullptr ? pathAddEntry->name : STR_NONE);
ft.Add<StringId>(pathAddEntry != nullptr ? pathAddEntry->name : STR_NONE);
SetMapTooltip(ft);
return info;
}
@ -491,24 +491,24 @@ InteractionInfo ViewportInteractionGetItemRight(const ScreenCoordsXY& screenCoor
if (tileElement->GetType() != TileElementType::Entrance)
break;
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE);
ft.Add<rct_string_id>(STR_OBJECT_SELECTION_PARK_ENTRANCE);
ft.Add<StringId>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE);
ft.Add<StringId>(STR_OBJECT_SELECTION_PARK_ENTRANCE);
SetMapTooltip(ft);
return info;
case ViewportInteractionItem::Wall:
{
auto* wallEntry = tileElement->AsWall()->GetEntry();
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE);
ft.Add<rct_string_id>(wallEntry->name);
ft.Add<StringId>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE);
ft.Add<StringId>(wallEntry->name);
SetMapTooltip(ft);
return info;
}
case ViewportInteractionItem::LargeScenery:
{
auto* sceneryEntry = tileElement->AsLargeScenery()->GetEntry();
ft.Add<rct_string_id>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE);
ft.Add<rct_string_id>(sceneryEntry->name);
ft.Add<StringId>(STR_MAP_TOOLTIP_STRINGID_CLICK_TO_REMOVE);
ft.Add<StringId>(sceneryEntry->name);
SetMapTooltip(ft);
return info;
}

View File

@ -443,7 +443,7 @@ static void WidgetTextInset(rct_drawpixelinfo* dpi, rct_window& w, rct_widgetind
WidgetText(dpi, w, widgetIndex);
}
static std::pair<rct_string_id, void*> WidgetGetStringidAndArgs(const rct_widget& widget)
static std::pair<StringId, void*> WidgetGetStringidAndArgs(const rct_widget& widget)
{
auto stringId = widget.text;
void* formatArgs = gCommonFormatArgs;

View File

@ -753,8 +753,8 @@ void Window::Close()
}
void Window::TextInputOpen(
rct_widgetindex callWidget, rct_string_id title, rct_string_id description, const Formatter& descriptionArgs,
rct_string_id existingText, uintptr_t existingArgs, int32_t maxLength)
rct_widgetindex callWidget, StringId title, StringId description, const Formatter& descriptionArgs, StringId existingText,
uintptr_t existingArgs, int32_t maxLength)
{
WindowTextInputOpen(this, callWidget, title, description, descriptionArgs, existingText, existingArgs, maxLength);
}

View File

@ -28,8 +28,8 @@ struct Window : rct_window
void DrawWidgets(rct_drawpixelinfo& dpi);
void Close();
void TextInputOpen(
rct_widgetindex callWidget, rct_string_id title, rct_string_id description, const Formatter& descriptionArgs,
rct_string_id existingText, uintptr_t existingArgs, int32_t maxLength);
rct_widgetindex callWidget, StringId title, StringId description, const Formatter& descriptionArgs,
StringId existingText, uintptr_t existingArgs, int32_t maxLength);
};
void WindowAllWheelInput();

View File

@ -681,13 +681,13 @@ void CustomListView::PaintHeading(
if (sortOrder == ColumnSortOrder::Ascending)
{
auto ft = Formatter();
ft.Add<rct_string_id>(STR_UP);
ft.Add<StringId>(STR_UP);
DrawTextBasic(dpi, pos + ScreenCoordsXY{ size.width - 1, 0 }, STR_BLACK_STRING, ft, { TextAlignment::RIGHT });
}
else if (sortOrder == ColumnSortOrder::Descending)
{
auto ft = Formatter();
ft.Add<rct_string_id>(STR_DOWN);
ft.Add<StringId>(STR_DOWN);
DrawTextBasic(dpi, pos + ScreenCoordsXY{ size.width - 1, 0 }, STR_BLACK_STRING, ft, { TextAlignment::RIGHT });
}
}
@ -754,10 +754,10 @@ void CustomListView::PaintSeperator(
void CustomListView::PaintCell(
rct_drawpixelinfo* dpi, const ScreenCoordsXY& pos, const ScreenSize& size, const char* text, bool isHighlighted) const
{
rct_string_id stringId = isHighlighted ? STR_WINDOW_COLOUR_2_STRINGID : STR_BLACK_STRING;
StringId stringId = isHighlighted ? STR_WINDOW_COLOUR_2_STRINGID : STR_BLACK_STRING;
auto ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(text);
DrawTextEllipsised(dpi, pos, size.width, stringId, ft, {});
}

View File

@ -23,7 +23,7 @@ using namespace OpenRCT2;
static constexpr const int32_t WW = 400;
static constexpr const int32_t WH = 352;
static constexpr const rct_string_id WINDOW_TITLE = STR_ABOUT;
static constexpr const StringId WINDOW_TITLE = STR_ABOUT;
static constexpr const int32_t TABHEIGHT = 50;
// clang-format off
@ -138,13 +138,13 @@ public:
// Draw tab names
{
auto ft = Formatter();
ft.Add<rct_string_id>(STR_TITLE_SEQUENCE_OPENRCT2);
ft.Add<StringId>(STR_TITLE_SEQUENCE_OPENRCT2);
DrawTextWrapped(
&dpi, aboutOpenRCT2Coords, 87, STR_WINDOW_COLOUR_2_STRINGID, ft, { COLOUR_AQUAMARINE, TextAlignment::CENTRE });
}
{
auto ft = Formatter();
ft.Add<rct_string_id>(STR_TITLE_SEQUENCE_RCT2);
ft.Add<StringId>(STR_TITLE_SEQUENCE_RCT2);
DrawTextWrapped(
&dpi, aboutRCT2Coords, 87, STR_WINDOW_COLOUR_2_STRINGID, ft, { COLOUR_AQUAMARINE, TextAlignment::CENTRE });
}

View File

@ -23,7 +23,7 @@
static constexpr const int32_t WW = 113;
static constexpr const int32_t WH = 96;
static constexpr const rct_string_id WINDOW_TITLE = STR_BANNER_WINDOW_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_BANNER_WINDOW_TITLE;
// clang-format off
enum WindowBannerWidgetIdx {
@ -39,7 +39,7 @@ enum WindowBannerWidgetIdx {
WIDX_TEXT_COLOUR_DROPDOWN_BUTTON
};
static constexpr const rct_string_id BannerColouredTextFormats[] = {
static constexpr const StringId BannerColouredTextFormats[] = {
STR_TEXT_COLOR_BLACK,
STR_TEXT_COLOR_GREY,
STR_TEXT_COLOR_WHITE,

View File

@ -38,7 +38,7 @@ enum {
static constexpr const int32_t WW = 500;
static constexpr const int32_t WH = 400;
static constexpr const rct_string_id WINDOW_TITLE = STR_CHANGELOG_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_CHANGELOG_TITLE;
constexpr int32_t MIN_WW = 300;
constexpr int32_t MIN_WH = 250;

View File

@ -41,14 +41,14 @@ enum
WINDOW_CHEATS_PAGE_COUNT,
};
static rct_string_id _staffSpeedNames[] =
static StringId _staffSpeedNames[] =
{
STR_FROZEN,
STR_NORMAL,
STR_FAST,
};
static constexpr const rct_string_id WeatherTypes[] =
static constexpr const StringId WeatherTypes[] =
{
STR_SUNNY,
STR_PARTIALLY_CLOUDY,
@ -175,7 +175,7 @@ enum WindowCheatsWidgetIdx
#pragma region MEASUREMENTS
static constexpr const rct_string_id WINDOW_TITLE = STR_CHEAT_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_CHEAT_TITLE;
static constexpr const int32_t WW = 249;
static constexpr const int32_t WH = 300;
@ -338,7 +338,7 @@ static uint64_t window_cheats_page_hold_down_widgets[] = {
0,
};
static rct_string_id window_cheats_page_titles[] = {
static StringId window_cheats_page_titles[] = {
STR_CHEAT_TITLE_FINANCIAL,
STR_CHEAT_TITLE_GUEST,
STR_CHEAT_TITLE_PARK,
@ -590,7 +590,7 @@ public:
}
}
OpenRCT2String OnTooltip(rct_widgetindex widgetIndex, rct_string_id fallback) override
OpenRCT2String OnTooltip(rct_widgetindex widgetIndex, StringId fallback) override
{
if (page == WINDOW_CHEATS_PAGE_RIDES && widgetIndex == WIDX_UNLOCK_OPERATING_LIMITS)
{

View File

@ -30,7 +30,7 @@ enum WindowClearSceneryWidgetIdx
WIDX_FOOTPATH
};
// clang-format on
static constexpr const rct_string_id WINDOW_TITLE = STR_CLEAR_SCENERY;
static constexpr const StringId WINDOW_TITLE = STR_CLEAR_SCENERY;
static constexpr const int32_t WW = 98;
static constexpr const int32_t WH = 94;

View File

@ -18,7 +18,7 @@
#include <openrct2/localisation/Localisation.h>
#include <openrct2/util/Util.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_CUSTOM_CURRENCY_WINDOW_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_CUSTOM_CURRENCY_WINDOW_TITLE;
static constexpr const int32_t WH = 100;
static constexpr const int32_t WW = 400;
@ -216,7 +216,7 @@ public:
auto drawPos = windowPos
+ ScreenCoordsXY{ window_custom_currency_widgets[WIDX_AFFIX_DROPDOWN].left + 1,
window_custom_currency_widgets[WIDX_AFFIX_DROPDOWN].top };
rct_string_id stringId = (CurrencyDescriptors[EnumValue(CurrencyType::Custom)].affix_unicode == CurrencyAffix::Prefix)
StringId stringId = (CurrencyDescriptors[EnumValue(CurrencyType::Custom)].affix_unicode == CurrencyAffix::Prefix)
? STR_PREFIX
: STR_SUFFIX;
DrawTextBasic(&dpi, drawPos, stringId, {}, { colours[1] });

View File

@ -179,7 +179,7 @@ public:
gfx_filter_rect(&dpi, { screenCoords, rightBottom }, FilterPaletteID::PaletteDarken3);
}
rct_string_id item = gDropdownItems[i].Format;
StringId item = gDropdownItems[i].Format;
if (item == Dropdown::FormatLandPicker || item == Dropdown::FormatColourPicker)
{
// Image item

View File

@ -49,7 +49,7 @@ class EditorBottomToolbarWindow final : public Window
private:
using FuncPtr = void (EditorBottomToolbarWindow::*)() const;
static constexpr const rct_string_id _editorStepNames[] = {
static constexpr const StringId _editorStepNames[] = {
STR_EDITOR_STEP_OBJECT_SELECTION, STR_EDITOR_STEP_LANDSCAPE_EDITOR, STR_EDITOR_STEP_INVENTIONS_LIST_SET_UP,
STR_EDITOR_STEP_OPTIONS_SELECTION, STR_EDITOR_STEP_OBJECTIVE_SELECTION, STR_EDITOR_STEP_SAVE_SCENARIO,
STR_EDITOR_STEP_ROLLERCOASTER_DESIGNER, STR_EDITOR_STEP_TRACK_DESIGNS_MANAGER,
@ -306,7 +306,7 @@ private:
int16_t textX = (widgets[WIDX_PREVIOUS_IMAGE].left + 30 + widgets[WIDX_PREVIOUS_IMAGE].right) / 2 + windowPos.x;
int16_t textY = widgets[WIDX_PREVIOUS_IMAGE].top + 6 + windowPos.y;
rct_string_id stringId = _editorStepNames[EnumValue(gEditorStep) - 1];
StringId stringId = _editorStepNames[EnumValue(gEditorStep) - 1];
if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER)
stringId = STR_EDITOR_STEP_OBJECT_SELECTION;
@ -343,7 +343,7 @@ private:
int16_t textX = (widgets[WIDX_NEXT_IMAGE].left + widgets[WIDX_NEXT_IMAGE].right - 30) / 2 + windowPos.x;
int16_t textY = widgets[WIDX_NEXT_IMAGE].top + 6 + windowPos.y;
rct_string_id stringId = _editorStepNames[EnumValue(gEditorStep) + 1];
StringId stringId = _editorStepNames[EnumValue(gEditorStep) + 1];
if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER)
stringId = STR_EDITOR_STEP_ROLLERCOASTER_DESIGNER;

View File

@ -29,7 +29,7 @@
static constexpr const int32_t WW = 600;
static constexpr const int32_t WH = 400;
static constexpr const rct_string_id WINDOW_TITLE = STR_INVENTION_LIST;
static constexpr const StringId WINDOW_TITLE = STR_INVENTION_LIST;
// clang-format off
enum {
@ -94,24 +94,24 @@ static void ResearchRidesSetup()
}
}
static std::pair<rct_string_id, Formatter> WindowEditorInventionsListPrepareName(const ResearchItem& researchItem, bool withGap)
static std::pair<StringId, Formatter> WindowEditorInventionsListPrepareName(const ResearchItem& researchItem, bool withGap)
{
rct_string_id drawString;
rct_string_id stringId = researchItem.GetName();
StringId drawString;
StringId stringId = researchItem.GetName();
auto ft = Formatter();
if (researchItem.type == Research::EntryType::Ride
&& !GetRideTypeDescriptor(researchItem.baseRideType).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
drawString = withGap ? STR_INVENTIONS_LIST_RIDE_AND_VEHICLE_NAME_DRAG : STR_WINDOW_COLOUR_2_STRINGID_STRINGID;
rct_string_id rideTypeName = get_ride_naming(researchItem.baseRideType, get_ride_entry(researchItem.entryIndex)).Name;
ft.Add<rct_string_id>(rideTypeName);
ft.Add<rct_string_id>(stringId);
StringId rideTypeName = get_ride_naming(researchItem.baseRideType, get_ride_entry(researchItem.entryIndex)).Name;
ft.Add<StringId>(rideTypeName);
ft.Add<StringId>(stringId);
}
else
{
drawString = STR_WINDOW_COLOUR_2_STRINGID;
ft.Add<rct_string_id>(stringId);
ft.Add<StringId>(stringId);
}
return std::make_pair(drawString, ft);
@ -305,24 +305,24 @@ public:
colour = colours[1] | COLOUR_FLAG_INSET;
}
const rct_string_id itemNameId = researchItem.GetName();
const StringId itemNameId = researchItem.GetName();
if (researchItem.type == Research::EntryType::Ride
&& !GetRideTypeDescriptor(researchItem.baseRideType).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
const auto rideEntry = get_ride_entry(researchItem.entryIndex);
const rct_string_id rideTypeName = get_ride_naming(researchItem.baseRideType, rideEntry).Name;
const StringId rideTypeName = get_ride_naming(researchItem.baseRideType, rideEntry).Name;
// Draw group name
auto ft = Formatter();
ft.Add<rct_string_id>(rideTypeName);
ft.Add<StringId>(rideTypeName);
DrawTextEllipsised(
&dpi, { 1, itemY }, columnSplitOffset - 11, STR_INVENTIONS_LIST_RIDE_AND_VEHICLE_NAME, ft,
{ colour, fontSpriteBase });
// Draw vehicle name
ft = Formatter();
ft.Add<rct_string_id>(itemNameId);
ft.Add<StringId>(itemNameId);
DrawTextEllipsised(
&dpi, { columnSplitOffset + 1, itemY }, columnSplitOffset - 11, STR_BLACK_STRING, ft,
{ colour, fontSpriteBase });
@ -331,7 +331,7 @@ public:
{
// Scenery group, flat ride or shop
auto ft = Formatter();
ft.Add<rct_string_id>(itemNameId);
ft.Add<StringId>(itemNameId);
DrawTextEllipsised(&dpi, { 1, itemY }, boxWidth, STR_BLACK_STRING, ft, { colour, fontSpriteBase });
}
}
@ -429,7 +429,7 @@ public:
// Item category
screenPos.x = windowPos.x + widgets[WIDX_RESEARCH_ORDER_SCROLL].right + 4;
ft = Formatter();
ft.Add<rct_string_id>(researchItem->GetCategoryInventionString());
ft.Add<StringId>(researchItem->GetCategoryInventionString());
DrawTextBasic(&dpi, screenPos, STR_INVENTION_RESEARCH_GROUP, ft);
}
@ -640,16 +640,16 @@ public:
void Init(ResearchItem& researchItem)
{
_draggedItem = researchItem;
rct_string_id stringId = researchItem.GetName();
StringId stringId = researchItem.GetName();
char buffer[256] = {};
if (researchItem.type == Research::EntryType::Ride
&& !GetRideTypeDescriptor(researchItem.baseRideType).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
const auto rideEntry = get_ride_entry(researchItem.entryIndex);
const rct_string_id rideTypeName = get_ride_naming(researchItem.baseRideType, rideEntry).Name;
const StringId rideTypeName = get_ride_naming(researchItem.baseRideType, rideEntry).Name;
Formatter ft;
ft.Add<rct_string_id>(stringId);
ft.Add<rct_string_id>(rideTypeName);
ft.Add<StringId>(stringId);
ft.Add<StringId>(rideTypeName);
format_string(buffer, 256, STR_INVENTIONS_LIST_RIDE_AND_VEHICLE_NAME, &ft);
}
else

View File

@ -115,13 +115,13 @@ static char _filter_string[MAX_PATH];
#define _FILTER_SELECTED (_filter_flags & FILTER_SELECTED)
#define _FILTER_NONSELECTED (_filter_flags & FILTER_NONSELECTED)
static constexpr const rct_string_id WINDOW_TITLE = STR_OBJECT_SELECTION;
static constexpr const StringId WINDOW_TITLE = STR_OBJECT_SELECTION;
static constexpr const int32_t WH = 400;
static constexpr const int32_t WW = 755;
struct ObjectPageDesc
{
rct_string_id Caption;
StringId Caption;
uint32_t Image;
bool IsAdvanced;
};
@ -240,7 +240,7 @@ static constexpr const int32_t window_editor_object_selection_animation_divisor[
2, // Stall
};
static rct_string_id GetRideTypeStringId(const ObjectRepositoryItem* item);
static StringId GetRideTypeStringId(const ObjectRepositoryItem* item);
static bool VisibleListSortRideType(const ObjectListItem& a, const ObjectListItem& b);
static bool VisibleListSortRideName(const ObjectListItem& a, const ObjectListItem& b);
void EditorLoadSelectedObjects();
@ -617,8 +617,8 @@ public:
const auto objectSelectResult = window_editor_object_selection_select_object(0, inputFlags, listItem->repositoryItem);
if (!objectSelectResult.Successful)
{
rct_string_id error_title = (inputFlags & INPUT_FLAG_EDITOR_OBJECT_SELECT) ? STR_UNABLE_TO_SELECT_THIS_OBJECT
: STR_UNABLE_TO_DE_SELECT_THIS_OBJECT;
StringId error_title = (inputFlags & INPUT_FLAG_EDITOR_OBJECT_SELECT) ? STR_UNABLE_TO_SELECT_THIS_OBJECT
: STR_UNABLE_TO_DE_SELECT_THIS_OBJECT;
context_show_error(error_title, objectSelectResult.Message, {});
return;
@ -751,7 +751,7 @@ public:
{
width_limit /= 2;
// Draw ride type
rct_string_id rideTypeStringId = GetRideTypeStringId(listItem.repositoryItem);
StringId rideTypeStringId = GetRideTypeStringId(listItem.repositoryItem);
safe_strcpy(buffer, language_get_string(rideTypeStringId), 256 - (buffer - bufferWithColour));
auto ft = Formatter();
ft.Add<const char*>(gCommonStringFormatBuffer);
@ -780,12 +780,12 @@ public:
*
* rct2: 0x006AB058
*/
OpenRCT2String OnTooltip(const rct_widgetindex widgetIndex, const rct_string_id fallback) override
OpenRCT2String OnTooltip(const rct_widgetindex widgetIndex, const StringId fallback) override
{
if (widgetIndex >= WIDX_TAB_1 && static_cast<size_t>(widgetIndex) < WIDX_TAB_1 + std::size(ObjectSelectionPages))
{
auto ft = Formatter();
ft.Add<rct_string_id>(ObjectSelectionPages[(widgetIndex - WIDX_TAB_1)].Caption);
ft.Add<StringId>(ObjectSelectionPages[(widgetIndex - WIDX_TAB_1)].Caption);
return { fallback, ft };
}
return { fallback, {} };
@ -843,7 +843,7 @@ public:
// Set window title and buttons
auto ft = Formatter::Common();
ft.Add<rct_string_id>(ObjectSelectionPages[selected_tab].Caption);
ft.Add<StringId>(ObjectSelectionPages[selected_tab].Caption);
auto& titleWidget = widgets[WIDX_TITLE];
auto& installTrackWidget = widgets[WIDX_INSTALL_TRACK];
if (gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER)
@ -1034,10 +1034,9 @@ public:
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 stringId = _listSortType == RIDE_SORT_TYPE ? static_cast<StringId>(_listSortDescending ? STR_DOWN : STR_UP)
: STR_NONE;
ft.Add<StringId>(stringId);
auto screenPos = windowPos + ScreenCoordsXY{ listSortTypeWidget.left + 1, listSortTypeWidget.top + 1 };
DrawTextEllipsised(&dpi, screenPos, listSortTypeWidget.width(), STR_OBJECTS_SORT_TYPE, ft, { colours[1] });
}
@ -1045,10 +1044,9 @@ public:
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 stringId = _listSortType == RIDE_SORT_RIDE ? static_cast<StringId>(_listSortDescending ? STR_DOWN : STR_UP)
: STR_NONE;
ft.Add<StringId>(stringId);
auto screenPos = windowPos + ScreenCoordsXY{ listSortRideWidget.left + 1, listSortRideWidget.top + 1 };
DrawTextEllipsised(&dpi, screenPos, listSortRideWidget.width(), STR_OBJECTS_SORT_RIDE, ft, { colours[1] });
}
@ -1075,7 +1073,7 @@ public:
auto screenPos = windowPos + ScreenCoordsXY{ previewWidget.midX() + 1, previewWidget.bottom + 3 };
_width = this->width - widgets[WIDX_LIST].right - 6;
auto ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(listItem->repositoryItem->Name.c_str());
DrawTextEllipsised(&dpi, screenPos, _width, STR_WINDOW_COLOUR_2_STRINGID, ft, { TextAlignment::CENTRE });
}
@ -1201,7 +1199,7 @@ private:
if (!description.empty())
{
auto ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(description.c_str());
screenPos.y += DrawTextWrapped(dpi, screenPos, _width2, STR_WINDOW_COLOUR_2_STRINGID, ft) + LIST_ROW_HEIGHT;
@ -1277,7 +1275,7 @@ private:
{
auto path = Path::GetFileName(listItem->repositoryItem->Path);
auto ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const utf8*>(path.c_str());
DrawTextBasic(
dpi, { windowPos.x + this->width - 5, screenPos.y }, STR_WINDOW_COLOUR_2_STRINGID, ft,
@ -1297,7 +1295,7 @@ private:
}
authorsString.append(listItem->repositoryItem->Authors[i]);
}
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(authorsString.c_str());
DrawTextEllipsised(
dpi, { windowPos.x + width - 5, screenPos.y }, width - widgets[WIDX_LIST].right - 4,
@ -1536,9 +1534,9 @@ static bool VisibleListSortRideType(const ObjectListItem& a, const ObjectListIte
return result != 0 ? result < 0 : VisibleListSortRideName(a, b);
}
static rct_string_id GetRideTypeStringId(const ObjectRepositoryItem* item)
static StringId GetRideTypeStringId(const ObjectRepositoryItem* item)
{
rct_string_id result = STR_NONE;
StringId result = STR_NONE;
for (int32_t i = 0; i < RCT2::ObjectLimits::MaxRideTypesPerRideEntry; i++)
{
uint8_t rideType = item->RideInfo.RideType[i];

View File

@ -33,7 +33,7 @@
#include <openrct2/util/Util.h>
#include <openrct2/world/Park.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_OBJECTIVE_SELECTION;
static constexpr const StringId WINDOW_TITLE = STR_OBJECTIVE_SELECTION;
static constexpr const int32_t WH = 229;
static constexpr const int32_t WW = 450;
@ -46,7 +46,7 @@ enum {
WINDOW_EDITOR_OBJECTIVE_OPTIONS_PAGE_COUNT
};
static constexpr const rct_string_id ObjectiveDropdownOptionNames[] = {
static constexpr const StringId ObjectiveDropdownOptionNames[] = {
STR_OBJECTIVE_DROPDOWN_NONE,
STR_OBJECTIVE_DROPDOWN_NUMBER_OF_GUESTS_AT_A_GIVEN_DATE,
STR_OBJECTIVE_DROPDOWN_PARK_VALUE_AT_A_GIVEN_DATE,
@ -770,7 +770,7 @@ static void WindowEditorObjectiveOptionsMainInvalidate(rct_window* w)
static void WindowEditorObjectiveOptionsMainPaint(rct_window* w, rct_drawpixelinfo* dpi)
{
int32_t width;
rct_string_id stringId;
StringId stringId;
WindowDrawWidgets(*w, dpi);
WindowEditorObjectiveOptionsDrawTabImages(w, dpi);
@ -782,7 +782,7 @@ static void WindowEditorObjectiveOptionsMainPaint(rct_window* w, rct_drawpixelin
// Objective value
screenCoords = w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_OBJECTIVE].left + 1, w->widgets[WIDX_OBJECTIVE].top };
auto ft = Formatter();
ft.Add<rct_string_id>(ObjectiveDropdownOptionNames[gScenarioObjective.Type]);
ft.Add<StringId>(ObjectiveDropdownOptionNames[gScenarioObjective.Type]);
DrawTextBasic(dpi, screenCoords, STR_WINDOW_COLOUR_2_STRINGID, ft);
if (w->widgets[WIDX_OBJECTIVE_ARG_1].type != WindowWidgetType::Empty)
@ -871,7 +871,7 @@ static void WindowEditorObjectiveOptionsMainPaint(rct_window* w, rct_drawpixelin
auto parkName = park.Name.c_str();
ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(parkName);
DrawTextEllipsised(dpi, screenCoords, width, STR_WINDOW_PARK_NAME, ft);
}
@ -881,7 +881,7 @@ static void WindowEditorObjectiveOptionsMainPaint(rct_window* w, rct_drawpixelin
width = w->widgets[WIDX_SCENARIO_NAME].left - 16;
ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(gScenarioName.c_str());
DrawTextEllipsised(dpi, screenCoords, width, STR_WINDOW_SCENARIO_NAME, ft);
@ -894,7 +894,7 @@ static void WindowEditorObjectiveOptionsMainPaint(rct_window* w, rct_drawpixelin
width = w->widgets[WIDX_DETAILS].left - 4;
ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(gScenarioDetails.c_str());
DrawTextWrapped(dpi, screenCoords, width, STR_BLACK_STRING, ft);
@ -905,7 +905,7 @@ static void WindowEditorObjectiveOptionsMainPaint(rct_window* w, rct_drawpixelin
// Scenario category value
screenCoords = w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_CATEGORY].left + 1, w->widgets[WIDX_CATEGORY].top };
ft = Formatter();
ft.Add<rct_string_id>(ScenarioCategoryStringIds[gScenarioCategory]);
ft.Add<StringId>(ScenarioCategoryStringIds[gScenarioCategory]);
DrawTextBasic(dpi, screenCoords, STR_WINDOW_COLOUR_2_STRINGID, ft);
}

View File

@ -48,7 +48,7 @@ enum {
WINDOW_EDITOR_SCENARIO_OPTIONS_PAGE_COUNT
};
static constexpr const rct_string_id ClimateNames[] = {
static constexpr const StringId ClimateNames[] = {
STR_CLIMATE_COOL_AND_WET,
STR_CLIMATE_WARM,
STR_CLIMATE_HOT_AND_DRY,
@ -1300,11 +1300,11 @@ static void WindowEditorScenarioOptionsParkPaint(rct_window* w, rct_drawpixelinf
auto ft = Formatter();
// Pay for park and/or rides value
if (gParkFlags & PARK_FLAGS_UNLOCK_ALL_PRICES)
ft.Add<rct_string_id>(STR_PAID_ENTRY_PAID_RIDES);
ft.Add<StringId>(STR_PAID_ENTRY_PAID_RIDES);
else if (gParkFlags & PARK_FLAGS_PARK_FREE_ENTRY)
ft.Add<rct_string_id>(STR_FREE_PARK_ENTER);
ft.Add<StringId>(STR_FREE_PARK_ENTER);
else
ft.Add<rct_string_id>(STR_PAY_PARK_ENTER);
ft.Add<StringId>(STR_PAY_PARK_ENTER);
DrawTextBasic(dpi, screenCoords, STR_WINDOW_COLOUR_2_STRINGID, ft);
}
@ -1331,7 +1331,7 @@ static void WindowEditorScenarioOptionsParkPaint(rct_window* w, rct_drawpixelinf
// Climate value
screenCoords = w->windowPos + ScreenCoordsXY{ climateWidget.left + 1, climateWidget.top };
auto ft = Formatter();
ft.Add<rct_string_id>(ClimateNames[static_cast<uint8_t>(gClimate)]);
ft.Add<StringId>(ClimateNames[static_cast<uint8_t>(gClimate)]);
DrawTextBasic(dpi, screenCoords, STR_WINDOW_COLOUR_2_STRINGID, ft);
}

View File

@ -48,7 +48,7 @@ static uint16_t _window_error_num_lines;
* bx: title
* dx: message
*/
rct_window* WindowErrorOpen(rct_string_id title, rct_string_id message, const Formatter& args)
rct_window* WindowErrorOpen(StringId title, StringId message, const Formatter& args)
{
auto titlez = format_string(title, args.Data());
auto messagez = format_string(message, args.Data());

View File

@ -179,7 +179,7 @@ static_assert(std::size(_windowFinancesPageWidgets) == WINDOW_FINANCES_PAGE_COUN
#pragma endregion
static constexpr const rct_string_id _windowFinancesSummaryRowLabels[static_cast<int32_t>(ExpenditureType::Count)] = {
static constexpr const StringId _windowFinancesSummaryRowLabels[static_cast<int32_t>(ExpenditureType::Count)] = {
STR_FINANCES_SUMMARY_RIDE_CONSTRUCTION,
STR_FINANCES_SUMMARY_RIDE_RUNNING_COSTS,
STR_FINANCES_SUMMARY_LAND_PURCHASE,
@ -390,7 +390,7 @@ public:
// Month heading
auto ft = Formatter();
ft.Add<rct_string_id>(STR_FINANCES_SUMMARY_MONTH_HEADING);
ft.Add<StringId>(STR_FINANCES_SUMMARY_MONTH_HEADING);
ft.Add<uint16_t>(monthyear);
DrawTextBasic(
&dpi, screenCoords + ScreenCoordsXY{ EXPENDITURE_COLUMN_WIDTH, 0 },
@ -406,8 +406,8 @@ public:
if (expenditure != 0)
{
profit += expenditure;
const rct_string_id format = expenditure >= 0 ? STR_FINANCES_SUMMARY_INCOME_VALUE
: STR_FINANCES_SUMMARY_EXPENDITURE_VALUE;
const StringId format = expenditure >= 0 ? STR_FINANCES_SUMMARY_INCOME_VALUE
: STR_FINANCES_SUMMARY_EXPENDITURE_VALUE;
ft = Formatter();
ft.Add<money64>(expenditure);
DrawTextBasic(
@ -419,7 +419,7 @@ public:
screenCoords.y += 4;
// Month profit
const rct_string_id format = profit >= 0 ? STR_FINANCES_SUMMARY_INCOME_VALUE : STR_FINANCES_SUMMARY_LOSS_VALUE;
const StringId format = profit >= 0 ? STR_FINANCES_SUMMARY_INCOME_VALUE : STR_FINANCES_SUMMARY_LOSS_VALUE;
ft = Formatter();
ft.Add<money64>(profit);
DrawTextBasic(
@ -551,7 +551,7 @@ public:
// Current cash
ft = Formatter();
ft.Add<money64>(gCash);
rct_string_id stringId = gCash >= 0 ? STR_CASH_LABEL : STR_CASH_NEGATIVE_LABEL;
StringId stringId = gCash >= 0 ? STR_CASH_LABEL : STR_CASH_NEGATIVE_LABEL;
DrawTextBasic(&dpi, windowPos + ScreenCoordsXY{ 8, 294 }, stringId, ft);
// Objective related financial information
@ -828,18 +828,18 @@ public:
}
else
{
ft.Add<rct_string_id>(STR_NONE);
ft.Add<StringId>(STR_NONE);
}
break;
}
case ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE:
ft.Add<rct_string_id>(GetShopItemDescriptor(marketingCampaign->ShopItemType).Naming.Plural);
ft.Add<StringId>(GetShopItemDescriptor(marketingCampaign->ShopItemType).Naming.Plural);
break;
default:
{
auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark();
auto parkName = park.Name.c_str();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(parkName);
}
}

View File

@ -31,7 +31,7 @@
#include <openrct2/world/Park.h>
#include <openrct2/world/Surface.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_FOOTPATHS;
static constexpr const StringId WINDOW_TITLE = STR_FOOTPATHS;
static constexpr const int32_t WH = 421;
static constexpr const int32_t WW = 106;
static constexpr const uint16_t ARROW_PULSE_DURATION = 200;

View File

@ -70,7 +70,7 @@ static rct_widget window_game_bottom_toolbar_widgets[] =
uint8_t gToolbarDirtyFlags;
static void WindowGameBottomToolbarMouseup(rct_window *w, rct_widgetindex widgetIndex);
static OpenRCT2String WindowGameBottomToolbarTooltip(rct_window* w, const rct_widgetindex widgetIndex, const rct_string_id fallback);
static OpenRCT2String WindowGameBottomToolbarTooltip(rct_window* w, const rct_widgetindex widgetIndex, const StringId fallback);
static void WindowGameBottomToolbarInvalidate(rct_window *w);
static void WindowGameBottomToolbarPaint(rct_window *w, rct_drawpixelinfo *dpi);
static void WindowGameBottomToolbarUpdate(rct_window* w);
@ -188,8 +188,7 @@ static void WindowGameBottomToolbarMouseup(rct_window* w, rct_widgetindex widget
}
}
static OpenRCT2String WindowGameBottomToolbarTooltip(
rct_window* w, const rct_widgetindex widgetIndex, const rct_string_id fallback)
static OpenRCT2String WindowGameBottomToolbarTooltip(rct_window* w, const rct_widgetindex widgetIndex, const StringId fallback)
{
int32_t month, day;
auto ft = Formatter();
@ -207,8 +206,8 @@ static OpenRCT2String WindowGameBottomToolbarTooltip(
month = date_get_month(gDateMonthsElapsed);
day = ((gDateMonthTicks * days_in_month[month]) >> 16) & 0xFF;
ft.Add<rct_string_id>(DateDayNames[day]);
ft.Add<rct_string_id>(DateGameMonthNames[month]);
ft.Add<StringId>(DateDayNames[day]);
ft.Add<StringId>(DateGameMonthNames[month]);
break;
}
return { fallback, ft };
@ -410,19 +409,19 @@ static void WindowGameBottomToolbarDrawLeftPanel(rct_drawpixelinfo* dpi, rct_win
= (gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_MONEY
? COLOUR_WHITE
: NOT_TRANSLUCENT(w->colours[0]));
rct_string_id stringId = gCash < 0 ? STR_BOTTOM_TOOLBAR_CASH_NEGATIVE : STR_BOTTOM_TOOLBAR_CASH;
StringId stringId = gCash < 0 ? STR_BOTTOM_TOOLBAR_CASH_NEGATIVE : STR_BOTTOM_TOOLBAR_CASH;
auto ft = Formatter();
ft.Add<money64>(gCash);
DrawTextBasic(dpi, screenCoords, stringId, ft, { colour, TextAlignment::CENTRE });
}
static constexpr const rct_string_id _guestCountFormats[] = {
static constexpr const StringId _guestCountFormats[] = {
STR_BOTTOM_TOOLBAR_NUM_GUESTS_STABLE,
STR_BOTTOM_TOOLBAR_NUM_GUESTS_DECREASE,
STR_BOTTOM_TOOLBAR_NUM_GUESTS_INCREASE,
};
static constexpr const rct_string_id _guestCountFormatsSingular[] = {
static constexpr const StringId _guestCountFormatsSingular[] = {
STR_BOTTOM_TOOLBAR_NUM_GUESTS_STABLE_SINGULAR,
STR_BOTTOM_TOOLBAR_NUM_GUESTS_DECREASE_SINGULAR,
STR_BOTTOM_TOOLBAR_NUM_GUESTS_INCREASE_SINGULAR,
@ -433,8 +432,8 @@ static void WindowGameBottomToolbarDrawLeftPanel(rct_drawpixelinfo* dpi, rct_win
rct_widget widget = window_game_bottom_toolbar_widgets[WIDX_GUESTS];
auto screenCoords = ScreenCoordsXY{ w->windowPos.x + widget.midX(), w->windowPos.y + widget.midY() - 6 };
rct_string_id stringId = gNumGuestsInPark == 1 ? _guestCountFormatsSingular[gGuestChangeModifier]
: _guestCountFormats[gGuestChangeModifier];
StringId stringId = gNumGuestsInPark == 1 ? _guestCountFormatsSingular[gGuestChangeModifier]
: _guestCountFormats[gGuestChangeModifier];
colour_t colour
= (gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_GUESTS
? COLOUR_WHITE
@ -506,9 +505,9 @@ static void WindowGameBottomToolbarDrawRightPanel(rct_drawpixelinfo* dpi, rct_wi
= (gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_DATE
? COLOUR_WHITE
: NOT_TRANSLUCENT(w->colours[0]));
rct_string_id stringId = DateFormatStringFormatIds[gConfigGeneral.date_format];
StringId stringId = DateFormatStringFormatIds[gConfigGeneral.date_format];
auto ft = Formatter();
ft.Add<rct_string_id>(DateDayNames[day]);
ft.Add<StringId>(DateDayNames[day]);
ft.Add<int16_t>(month);
ft.Add<int16_t>(year);
DrawTextBasic(dpi, screenCoords, stringId, ft, { colour, TextAlignment::CENTRE });
@ -521,7 +520,7 @@ static void WindowGameBottomToolbarDrawRightPanel(rct_drawpixelinfo* dpi, rct_wi
static_cast<int32_t>(screenCoords.y + line_height + 1) };
int32_t temperature = gClimateCurrent.Temperature;
rct_string_id format = STR_CELSIUS_VALUE;
StringId format = STR_CELSIUS_VALUE;
if (gConfigGeneral.temperature_format == TemperatureUnit::Fahrenheit)
{
temperature = climate_celsius_to_fahrenheit(temperature);
@ -670,9 +669,9 @@ static void WindowGameBottomToolbarDrawMiddlePanel(rct_drawpixelinfo* dpi, rct_w
int32_t width = middleOutsetWidget->width() - 62;
// Check if there is a map tooltip to draw
rct_string_id stringId;
StringId stringId;
auto ft = GetMapTooltip();
std::memcpy(&stringId, ft.Data(), sizeof(rct_string_id));
std::memcpy(&stringId, ft.Data(), sizeof(StringId));
if (stringId == STR_NONE)
{
DrawTextWrapped(

View File

@ -34,7 +34,7 @@
#include <openrct2/world/Footpath.h>
#include <openrct2/world/Park.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_STRINGID;
static constexpr const StringId WINDOW_TITLE = STR_STRINGID;
static constexpr const int32_t WH = 157;
static constexpr const int32_t WW = 192;
@ -1190,7 +1190,7 @@ private:
// Nausea tolerance
{
static constexpr const rct_string_id _nauseaTolerances[] = {
static constexpr const StringId _nauseaTolerances[] = {
STR_PEEP_STAT_NAUSEA_TOLERANCE_NONE,
STR_PEEP_STAT_NAUSEA_TOLERANCE_LOW,
STR_PEEP_STAT_NAUSEA_TOLERANCE_AVERAGE,
@ -1199,7 +1199,7 @@ private:
screenCoords.y += LIST_ROW_HEIGHT;
auto nausea_tolerance = EnumValue(peep->NauseaTolerance) & 0x3;
auto ft = Formatter();
ft.Add<rct_string_id>(_nauseaTolerances[nausea_tolerance]);
ft.Add<StringId>(_nauseaTolerances[nausea_tolerance]);
DrawTextBasic(&dpi, screenCoords, STR_GUEST_STAT_NAUSEA_TOLERANCE, ft);
}
}
@ -1348,7 +1348,7 @@ private:
}
else
{
ft.Add<rct_string_id>(STR_PEEP_FAVOURITE_RIDE_NOT_AVAILABLE);
ft.Add<StringId>(STR_PEEP_FAVOURITE_RIDE_NOT_AVAILABLE);
}
DrawTextEllipsised(&dpi, screenCoords, width - 14, STR_FAVOURITE_RIDE, ft);
@ -1362,7 +1362,7 @@ private:
for (int32_t listIndex = 0; listIndex < no_list_items; listIndex++)
{
auto y = listIndex * 10;
rct_string_id stringId = STR_BLACK_STRING;
StringId stringId = STR_BLACK_STRING;
if (listIndex == selected_list_item)
{
gfx_filter_rect(&dpi, { 0, y, 800, y + 9 }, FilterPaletteID::PaletteDarken1);
@ -1632,7 +1632,7 @@ private:
}
}
std::pair<rct_string_id, Formatter> InventoryFormatItem(Guest& guest, ShopItem item) const
std::pair<StringId, Formatter> InventoryFormatItem(Guest& guest, ShopItem item) const
{
auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark();
auto parkName = park.Name.c_str();
@ -1640,8 +1640,8 @@ private:
// Default arguments
auto ft = Formatter();
ft.Add<uint32_t>(GetShopItemDescriptor(item).Image);
ft.Add<rct_string_id>(GetShopItemDescriptor(item).Naming.Display);
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(GetShopItemDescriptor(item).Naming.Display);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(parkName);
// Special overrides
@ -1672,8 +1672,8 @@ private:
case VOUCHER_TYPE_PARK_ENTRY_FREE:
ft.Rewind();
ft.Increment(6);
ft.Add<rct_string_id>(STR_PEEP_INVENTORY_VOUCHER_PARK_ENTRY_FREE);
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_PEEP_INVENTORY_VOUCHER_PARK_ENTRY_FREE);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(parkName);
break;
case VOUCHER_TYPE_RIDE_FREE:
@ -1682,22 +1682,22 @@ private:
{
ft.Rewind();
ft.Increment(6);
ft.Add<rct_string_id>(STR_PEEP_INVENTORY_VOUCHER_RIDE_FREE);
ft.Add<StringId>(STR_PEEP_INVENTORY_VOUCHER_RIDE_FREE);
invRide->FormatNameTo(ft);
}
break;
case VOUCHER_TYPE_PARK_ENTRY_HALF_PRICE:
ft.Rewind();
ft.Increment(6);
ft.Add<rct_string_id>(STR_PEEP_INVENTORY_VOUCHER_PARK_ENTRY_HALF_PRICE);
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_PEEP_INVENTORY_VOUCHER_PARK_ENTRY_HALF_PRICE);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(parkName);
break;
case VOUCHER_TYPE_FOOD_OR_DRINK_FREE:
ft.Rewind();
ft.Increment(6);
ft.Add<rct_string_id>(STR_PEEP_INVENTORY_VOUCHER_FOOD_OR_DRINK_FREE);
ft.Add<rct_string_id>(GetShopItemDescriptor(guest.VoucherShopItem).Naming.Singular);
ft.Add<StringId>(STR_PEEP_INVENTORY_VOUCHER_FOOD_OR_DRINK_FREE);
ft.Add<StringId>(GetShopItemDescriptor(guest.VoucherShopItem).Naming.Singular);
break;
}
break;

View File

@ -27,7 +27,7 @@
#include <openrct2/world/Park.h>
#include <vector>
static constexpr const rct_string_id WINDOW_TITLE = STR_GUESTS;
static constexpr const StringId WINDOW_TITLE = STR_GUESTS;
static constexpr const int32_t WH = 330;
static constexpr const int32_t WW = 350;
@ -93,9 +93,9 @@ private:
{
uint8_t args[12]{};
rct_string_id GetFirstStringId()
StringId GetFirstStringId()
{
rct_string_id firstStrId{};
StringId firstStrId{};
std::memcpy(&firstStrId, args, sizeof(firstStrId));
return firstStrId;
}
@ -186,7 +186,7 @@ public:
auto guestRide = get_ride(RideId::FromUnderlying(index));
if (guestRide != nullptr)
{
ft.Add<rct_string_id>(
ft.Add<StringId>(
guestRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IN_RIDE) ? STR_IN_RIDE : STR_ON_RIDE);
guestRide->FormatNameTo(ft);
@ -202,7 +202,7 @@ public:
auto guestRide = get_ride(RideId::FromUnderlying(index));
if (guestRide != nullptr)
{
ft.Add<rct_string_id>(STR_QUEUING_FOR);
ft.Add<StringId>(STR_QUEUING_FOR);
guestRide->FormatNameTo(ft);
_selectedFilter = GuestFilterType::Guests;
@ -217,7 +217,7 @@ public:
auto guestRide = get_ride(RideId::FromUnderlying(index));
if (guestRide != nullptr)
{
ft.Add<rct_string_id>(STR_NONE);
ft.Add<StringId>(STR_NONE);
guestRide->FormatNameTo(ft);
_selectedFilter = GuestFilterType::GuestsThinking;
@ -229,7 +229,7 @@ public:
}
case GuestListFilterType::GuestsThinkingX:
{
ft.Add<rct_string_id>(PeepThoughts[index & 0xFF]);
ft.Add<StringId>(PeepThoughts[index & 0xFF]);
_selectedFilter = GuestFilterType::GuestsThinking;
_highlightedIndex = {};
@ -451,7 +451,7 @@ public:
DrawTabImages(dpi);
// Filter description
rct_string_id format;
StringId format;
auto screenCoords = windowPos + ScreenCoordsXY{ 6, widgets[WIDX_TAB_CONTENT_PANEL].top + 3 };
if (_selectedTab == TabId::Individual)
{
@ -672,7 +672,7 @@ private:
&& y < dpi.y + dpi.height)
{
// Highlight backcolour and text colour (format)
rct_string_id format = STR_BLACK_STRING;
StringId format = STR_BLACK_STRING;
if (index == _highlightedIndex)
{
gfx_filter_rect(&dpi, { 0, y, 800, y + SCROLLABLE_ROW_HEIGHT - 1 }, FilterPaletteID::PaletteDarken1);
@ -742,7 +742,7 @@ private:
break;
// Highlight backcolour and text colour (format)
rct_string_id format = STR_BLACK_STRING;
StringId format = STR_BLACK_STRING;
if (index == _highlightedIndex)
{
gfx_filter_rect(&dpi, { 0, y, 800, y + SUMMARISED_GUEST_ROW_HEIGHT }, FilterPaletteID::PaletteDarken1);
@ -771,7 +771,7 @@ private:
// Draw guest count
ft = Formatter();
ft.Add<rct_string_id>(STR_GUESTS_COUNT_COMMA_SEP);
ft.Add<StringId>(STR_GUESTS_COUNT_COMMA_SEP);
ft.Add<uint32_t>(group.NumGuests);
DrawTextBasic(&dpi, { 326, y }, format, ft, { TextAlignment::RIGHT });
}
@ -807,7 +807,7 @@ private:
auto peepArgs = GetArgumentsFromPeep(peep, guestViewType);
if (_filterArguments.GetFirstStringId() == STR_NONE && _selectedFilter == GuestFilterType::GuestsThinking)
{
Formatter(peepArgs.args).Add<rct_string_id>(STR_NONE);
Formatter(peepArgs.args).Add<StringId>(STR_NONE);
}
return _filterArguments == peepArgs;
}
@ -904,7 +904,7 @@ private:
return result;
}
static constexpr rct_string_id GetViewName(GuestViewType type)
static constexpr StringId GetViewName(GuestViewType type)
{
switch (type)
{
@ -916,7 +916,7 @@ private:
}
}
static constexpr rct_string_id GetFilterString(GuestFilterType type)
static constexpr StringId GetFilterString(GuestFilterType type)
{
switch (type)
{

View File

@ -41,7 +41,7 @@ enum {
WIDX_CANCEL
};
static constexpr const rct_string_id WINDOW_TITLE = STR_TRACK_DESIGN_INSTALL_WINDOW_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_TRACK_DESIGN_INSTALL_WINDOW_TITLE;
static constexpr const int32_t WW = 380;
static constexpr const int32_t WH = 460;
constexpr int32_t PREVIEW_BUTTONS_LEFT = WW - 25;
@ -251,12 +251,12 @@ static void WindowInstallTrackPaint(rct_window* w, rct_drawpixelinfo* dpi)
{
auto groupIndex = object_manager_get_loaded_object_entry_index(objectEntry);
auto rideName = get_ride_naming(td6->type, get_ride_entry(groupIndex));
ft.Add<rct_string_id>(rideName.Name);
ft.Add<StringId>(rideName.Name);
}
else
{
// Fall back on the technical track name if the vehicle object cannot be loaded
ft.Add<rct_string_id>(GetRideTypeDescriptor(td6->type).Naming.Name);
ft.Add<StringId>(GetRideTypeDescriptor(td6->type).Naming.Name);
}
DrawTextBasic(dpi, screenPos, STR_TRACK_DESIGN_TYPE, ft);
@ -319,7 +319,7 @@ static void WindowInstallTrackPaint(rct_window* w, rct_drawpixelinfo* dpi)
// Ride length
auto ft = Formatter();
ft.Add<rct_string_id>(STR_RIDE_LENGTH_ENTRY);
ft.Add<StringId>(STR_RIDE_LENGTH_ENTRY);
ft.Add<uint16_t>(td6->ride_length);
DrawTextEllipsised(dpi, screenPos, 214, STR_TRACK_LIST_RIDE_LENGTH, ft);
screenPos.y += LIST_ROW_HEIGHT;

View File

@ -21,7 +21,7 @@
using namespace OpenRCT2;
static constexpr const rct_string_id WINDOW_TITLE = STR_LAND;
static constexpr const StringId WINDOW_TITLE = STR_LAND;
static constexpr const int32_t WH = 160;
static constexpr const int32_t WW = 98;

View File

@ -22,7 +22,7 @@
#include <openrct2/localisation/Localisation.h>
#include <openrct2/world/Park.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_LAND_RIGHTS;
static constexpr const StringId WINDOW_TITLE = STR_LAND_RIGHTS;
static constexpr const int32_t WH = 94;
static constexpr const int32_t WW = 98;

View File

@ -40,7 +40,7 @@
#pragma region Widgets
static constexpr const rct_string_id WINDOW_TITLE = STR_NONE;
static constexpr const StringId WINDOW_TITLE = STR_NONE;
static constexpr const int32_t WW = 350;
static constexpr const int32_t WH = 400;
@ -356,7 +356,7 @@ static u8string Browse(bool isSave)
OpenRCT2::Ui::FileDialogDesc desc = {};
u8string extension{};
auto fileType = FileExtension::Unknown;
rct_string_id title = STR_NONE;
StringId title = STR_NONE;
switch (_type & 0x0E)
{
case LOADSAVETYPE_GAME:
@ -712,7 +712,7 @@ static void WindowLoadsavePaint(rct_window* w, rct_drawpixelinfo* dpi)
DrawTextEllipsised(dpi, { w->windowPos.x + 4, w->windowPos.y + 20 }, w->width - 8, STR_STRING, ft);
// Name button text
rct_string_id id = STR_NONE;
StringId id = STR_NONE;
if (gConfigGeneral.load_save_sort == Sort::NameAscending)
id = STR_UP;
else if (gConfigGeneral.load_save_sort == Sort::NameDescending)
@ -721,7 +721,7 @@ static void WindowLoadsavePaint(rct_window* w, rct_drawpixelinfo* dpi)
// Draw name button indicator.
rct_widget sort_name_widget = window_loadsave_widgets[WIDX_SORT_NAME];
ft = Formatter();
ft.Add<rct_string_id>(id);
ft.Add<StringId>(id);
DrawTextBasic(
dpi, w->windowPos + ScreenCoordsXY{ sort_name_widget.left + 11, sort_name_widget.top + 1 }, STR_NAME, ft,
{ COLOUR_GREY });
@ -736,7 +736,7 @@ static void WindowLoadsavePaint(rct_window* w, rct_drawpixelinfo* dpi)
rct_widget sort_date_widget = window_loadsave_widgets[WIDX_SORT_DATE];
ft = Formatter();
ft.Add<rct_string_id>(id);
ft.Add<StringId>(id);
DrawTextBasic(
dpi, w->windowPos + ScreenCoordsXY{ sort_date_widget.left + 5, sort_date_widget.top + 1 }, STR_DATE, ft,
{ COLOUR_GREY });
@ -759,7 +759,7 @@ static void WindowLoadsaveScrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int
if (y + SCROLLABLE_ROW_HEIGHT < dpi->y)
continue;
rct_string_id stringId = STR_BLACK_STRING;
StringId stringId = STR_BLACK_STRING;
// If hovering over item, change the color and fill the backdrop.
if (i == w->selected_list_item)
@ -771,13 +771,13 @@ static void WindowLoadsaveScrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int
if (_listItems[i].loaded)
{
auto ft = Formatter();
ft.Add<rct_string_id>(STR_RIGHTGUILLEMET);
ft.Add<StringId>(STR_RIGHTGUILLEMET);
DrawTextBasic(dpi, { 0, y }, stringId, ft);
}
// Print filename
auto ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<char*>(_listItems[i].name.c_str());
int32_t max_file_width = w->widgets[WIDX_SORT_NAME].width() - 10;
DrawTextEllipsised(dpi, { 10, y }, max_file_width, stringId, ft);
@ -786,12 +786,12 @@ static void WindowLoadsaveScrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int
if (_listItems[i].type == TYPE_FILE)
{
ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<char*>(_listItems[i].date_formatted.c_str());
DrawTextEllipsised(dpi, { dateAnchor - DATE_TIME_GAP, y }, maxDateWidth, stringId, ft, { TextAlignment::RIGHT });
ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<char*>(_listItems[i].time_formatted.c_str());
DrawTextEllipsised(dpi, { dateAnchor + DATE_TIME_GAP, y }, maxTimeWidth, stringId, ft);
}
@ -1196,7 +1196,7 @@ static void WindowOverwritePromptPaint(rct_window* w, rct_drawpixelinfo* dpi)
WindowDrawWidgets(*w, dpi);
auto ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<char*>(_window_overwrite_prompt_name);
ScreenCoordsXY stringCoords(w->windowPos.x + w->width / 2, w->windowPos.y + (w->height / 2) - 3);

View File

@ -53,7 +53,7 @@ static constexpr uint16_t MapColourUnowned(uint16_t colour)
constexpr int32_t MAP_WINDOW_MAP_SIZE = MAXIMUM_MAP_SIZE_TECHNICAL * 2;
static constexpr const rct_string_id WINDOW_TITLE = STR_MAP_LABEL;
static constexpr const StringId WINDOW_TITLE = STR_MAP_LABEL;
static constexpr const int32_t WH = 259;
static constexpr const int32_t WW = 245;
@ -880,7 +880,7 @@ public:
{
screenCoords = windowPos + ScreenCoordsXY{ 4, widgets[WIDX_MAP].bottom + 2 };
static constexpr rct_string_id _mapLabels[] = {
static constexpr StringId _mapLabels[] = {
STR_MAP_RIDE, STR_MAP_FOOD_STALL, STR_MAP_DRINK_STALL, STR_MAP_SOUVENIR_STALL,
STR_MAP_INFO_KIOSK, STR_MAP_FIRST_AID, STR_MAP_CASH_MACHINE, STR_MAP_TOILET,
};

View File

@ -119,7 +119,7 @@ enum
#pragma region Widgets
static constexpr const rct_string_id WINDOW_TITLE = STR_MAPGEN_WINDOW_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_MAPGEN_WINDOW_TITLE;
static constexpr const int32_t WW = 250;
static constexpr const int32_t WH = 273;

View File

@ -78,8 +78,8 @@ void WindowMapTooltipUpdateVisibility()
_lastCursor = cursor;
// Show or hide tooltip
rct_string_id stringId;
std::memcpy(&stringId, _mapTooltipArgs.Data(), sizeof(rct_string_id));
StringId stringId;
std::memcpy(&stringId, _mapTooltipArgs.Data(), sizeof(StringId));
if (_cursorHoldDuration < 25 || stringId == STR_NONE
|| InputTestPlaceObjectModifier(
@ -139,8 +139,8 @@ static void WindowMapTooltipUpdate(rct_window* w)
*/
static void WindowMapTooltipPaint(rct_window* w, rct_drawpixelinfo* dpi)
{
rct_string_id stringId;
std::memcpy(&stringId, _mapTooltipArgs.Data(), sizeof(rct_string_id));
StringId stringId;
std::memcpy(&stringId, _mapTooltipArgs.Data(), sizeof(StringId));
if (stringId == STR_NONE)
{
return;

View File

@ -28,7 +28,7 @@
#pragma region Widgets
static constexpr const rct_string_id WINDOW_TITLE = STR_RIDE_CONSTRUCTION_WINDOW_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_RIDE_CONSTRUCTION_WINDOW_TITLE;
static constexpr const int32_t WH = 200;
static constexpr const int32_t WW = 166;
@ -287,7 +287,7 @@ public:
else
{
ft.Increment(4);
ft.Add<rct_string_id>(STR_NONE);
ft.Add<StringId>(STR_NONE);
}
}

View File

@ -111,7 +111,7 @@ static rct_widget *window_multiplayer_page_widgets[] = {
window_multiplayer_options_widgets,
};
static constexpr rct_string_id WindowMultiplayerPageTitles[] = {
static constexpr StringId WindowMultiplayerPageTitles[] = {
STR_MULTIPLAYER_INFORMATION_TITLE,
STR_MULTIPLAYER_PLAYERS_TITLE,
STR_MULTIPLAYER_GROUPS_TITLE,
@ -559,7 +559,7 @@ static void WindowMultiplayerPlayersInvalidate(rct_window* w)
static void WindowMultiplayerPlayersPaint(rct_window* w, rct_drawpixelinfo* dpi)
{
rct_string_id stringId;
StringId stringId;
WindowDrawWidgets(*w, dpi);
WindowMultiplayerDrawTabImages(w, dpi);
@ -632,11 +632,11 @@ static void WindowMultiplayerPlayersScrollpaint(rct_window* w, rct_drawpixelinfo
auto ft = Formatter();
if (action != -999)
{
ft.Add<rct_string_id>(network_get_action_name_string_id(action));
ft.Add<StringId>(network_get_action_name_string_id(action));
}
else
{
ft.Add<rct_string_id>(STR_ACTION_NA);
ft.Add<StringId>(STR_ACTION_NA);
}
DrawTextEllipsised(dpi, { 256, screenCoords.y }, 100, STR_BLACK_STRING, ft);

View File

@ -23,7 +23,7 @@
using namespace OpenRCT2;
static constexpr const rct_string_id WINDOW_TITLE = STR_NONE;
static constexpr const StringId WINDOW_TITLE = STR_NONE;
static constexpr const int32_t WH = 109;
static constexpr const int32_t WW = 350;

View File

@ -38,7 +38,7 @@
using namespace OpenRCT2::TrackMetaData;
static constexpr const rct_string_id WINDOW_TITLE = STR_NONE;
static constexpr const StringId WINDOW_TITLE = STR_NONE;
static constexpr const int32_t WH = 382;
static constexpr const int32_t WW = 601;
static constexpr const int32_t NEW_RIDE_LIST_ITEMS_MAX = 384;
@ -250,7 +250,7 @@ static rct_window_event_list window_new_ride_events([](auto& events) {
#pragma endregion
static constexpr const rct_string_id window_new_ride_titles[] = {
static constexpr const StringId window_new_ride_titles[] = {
STR_NEW_TRANSPORT_RIDES, // WINDOW_NEW_RIDE_PAGE_TRANSPORT
STR_NEW_GENTLE_RIDES, // WINDOW_NEW_RIDE_PAGE_GENTLE
STR_NEW_ROLLER_COASTERS, // WINDOW_NEW_RIDE_PAGE_ROLLER_COASTER
@ -917,8 +917,8 @@ static void WindowNewRidePaintRideInformation(
WindowNewRideUpdateVehicleAvailability(item.Type);
// Ride name and description
ft.Add<rct_string_id>(rideNaming.Name);
ft.Add<rct_string_id>(rideNaming.Description);
ft.Add<StringId>(rideNaming.Name);
ft.Add<StringId>(rideNaming.Description);
DrawTextWrapped(dpi, screenPos, width, STR_NEW_RIDE_NAME_AND_DESCRIPTION, ft);
if (!_vehicleAvailability.empty())
@ -926,7 +926,7 @@ static void WindowNewRidePaintRideInformation(
if (gConfigInterface.list_ride_vehicles_separately)
{
ft = Formatter();
ft.Add<rct_string_id>(rideEntry->naming.Name);
ft.Add<StringId>(rideEntry->naming.Name);
DrawTextEllipsised(dpi, screenPos + ScreenCoordsXY{ 0, 39 }, WW - 2, STR_NEW_RIDE_VEHICLE_NAME, ft);
}
else
@ -945,7 +945,7 @@ static void WindowNewRidePaintRideInformation(
}
ft.Add<int32_t>(_lastTrackDesignCount);
rct_string_id designCountStringId;
StringId designCountStringId;
switch (_lastTrackDesignCount)
{
case 0:
@ -972,7 +972,7 @@ static void WindowNewRidePaintRideInformation(
price = (price >> 16) * GetRideTypeDescriptor(item.Type).BuildCosts.PriceEstimateMultiplier;
//
rct_string_id stringId = STR_NEW_RIDE_COST;
StringId stringId = STR_NEW_RIDE_COST;
if (!GetRideTypeDescriptor(item.Type).HasFlag(RIDE_TYPE_FLAG_HAS_NO_TRACK))
stringId = STR_NEW_RIDE_COST_FROM;

View File

@ -21,7 +21,7 @@
#include <openrct2/management/NewsItem.h>
#include <openrct2/sprites.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_RECENT_MESSAGES;
static constexpr const StringId WINDOW_TITLE = STR_RECENT_MESSAGES;
static constexpr const int32_t WH = 300;
static constexpr const int32_t WW = 400;
@ -197,8 +197,8 @@ public:
// Date text
{
auto ft = Formatter();
ft.Add<rct_string_id>(DateDayNames[newsItem.Day - 1]);
ft.Add<rct_string_id>(DateGameMonthNames[date_get_month(newsItem.MonthYear)]);
ft.Add<StringId>(DateDayNames[newsItem.Day - 1]);
ft.Add<StringId>(DateGameMonthNames[date_get_month(newsItem.MonthYear)]);
DrawTextBasic(&dpi, { 2, y }, STR_NEWS_DATE_FORMAT, ft, { COLOUR_WHITE, FontSpriteBase::SMALL });
}
// Item text

View File

@ -14,7 +14,7 @@
#include <openrct2/drawing/Drawing.h>
#include <openrct2/sprites.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_NOTIFICATION_SETTINGS;
static constexpr const StringId WINDOW_TITLE = STR_NOTIFICATION_SETTINGS;
static constexpr const int32_t WH = 300;
static constexpr const int32_t WW = 400;
@ -30,7 +30,7 @@ enum
struct NotificationDef
{
uint8_t category;
rct_string_id caption;
StringId caption;
size_t config_offset;
};

View File

@ -264,7 +264,7 @@ enum WindowObjectLoadErrorWidgetIdx {
WIDX_DOWNLOAD_ALL
};
static constexpr const rct_string_id WINDOW_TITLE = STR_OBJECT_LOAD_ERROR_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_OBJECT_LOAD_ERROR_TITLE;
static constexpr const int32_t WW = 450;
static constexpr const int32_t WH = 400;
static constexpr const int32_t WW_LESS_PADDING = WW - 5;
@ -288,12 +288,12 @@ static rct_widget window_object_load_error_widgets[] = {
// clang-format on
/**
* Returns an rct_string_id that represents an rct_object_entry's type.
* Returns an StringId that represents an rct_object_entry's type.
*
* Could possibly be moved out of the window file if other
* uses exist and a suitable location is found.
*/
static constexpr rct_string_id GetStringFromObjectType(const ObjectType type)
static constexpr StringId GetStringFromObjectType(const ObjectType type)
{
switch (type)
{
@ -489,12 +489,12 @@ public:
// Draw explanatory message
auto ft = Formatter();
ft.Add<rct_string_id>(STR_OBJECT_ERROR_WINDOW_EXPLANATION);
ft.Add<StringId>(STR_OBJECT_ERROR_WINDOW_EXPLANATION);
DrawTextWrapped(&dpi, windowPos + ScreenCoordsXY{ 5, 18 }, WW - 10, STR_BLACK_STRING, ft);
// Draw file name
ft = Formatter();
ft.Add<rct_string_id>(STR_OBJECT_ERROR_WINDOW_FILE);
ft.Add<StringId>(STR_OBJECT_ERROR_WINDOW_FILE);
ft.Add<utf8*>(_filePath.c_str());
DrawTextEllipsised(&dpi, { windowPos.x + 5, windowPos.y + 43 }, WW - 5, STR_BLACK_STRING, ft);
}

View File

@ -212,7 +212,7 @@ enum WindowOptionsWidgetIdx {
WIDX_PATH_TO_RCT1_CLEAR,
};
static constexpr const rct_string_id WINDOW_TITLE = STR_OPTIONS_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_OPTIONS_TITLE;
static constexpr const int32_t WW = 310;
static constexpr const int32_t WH = 332;
@ -607,7 +607,7 @@ public:
}
}
OpenRCT2String OnTooltip(rct_widgetindex widgetIndex, rct_string_id fallback) override
OpenRCT2String OnTooltip(rct_widgetindex widgetIndex, StringId fallback) override
{
if (page == WINDOW_OPTIONS_PAGE_ADVANCED)
return AdvancedTooltip(widgetIndex, fallback);
@ -1031,7 +1031,7 @@ private:
SetCheckboxValue(WIDX_TRANSPARENT_SCREENSHOTS_CHECKBOX, gConfigGeneral.transparent_screenshot);
SetCheckboxValue(WIDX_UPPER_CASE_BANNERS_CHECKBOX, gConfigGeneral.upper_case_banners);
static constexpr rct_string_id _virtualFloorStyleStrings[] = {
static constexpr StringId _virtualFloorStyleStrings[] = {
STR_VIRTUAL_FLOOR_STYLE_DISABLED,
STR_VIRTUAL_FLOOR_STYLE_TRANSPARENT,
STR_VIRTUAL_FLOOR_STYLE_GLASSY,
@ -1259,7 +1259,7 @@ private:
// Distance: metric / imperial / si
{
rct_string_id stringId = STR_NONE;
StringId stringId = STR_NONE;
switch (gConfigGeneral.measurement_format)
{
case MeasurementFormat::Imperial:
@ -1466,7 +1466,7 @@ private:
return { 500, 0 };
}
rct_string_id GetTitleMusicName()
StringId GetTitleMusicName()
{
auto index = EnumValue(gConfigSound.title_music);
if (index < 0 || static_cast<size_t>(index) >= std::size(TitleMusicNames))
@ -1479,7 +1479,7 @@ private:
void AudioPrepareDraw()
{
// Sound device
rct_string_id audioDeviceStringId = STR_OPTIONS_SOUND_VALUE_DEFAULT;
StringId audioDeviceStringId = STR_OPTIONS_SOUND_VALUE_DEFAULT;
const char* audioDeviceName = nullptr;
const int32_t currentDeviceIndex = OpenRCT2::Audio::GetCurrentDeviceIndex();
if (currentDeviceIndex == -1 || OpenRCT2::Audio::GetDeviceCount() == 0)
@ -1814,12 +1814,12 @@ private:
auto ft = Formatter::Common();
if (gConfigInterface.random_title_sequence)
{
ft.Add<rct_string_id>(STR_TITLE_SEQUENCE_RANDOM);
ft.Add<StringId>(STR_TITLE_SEQUENCE_RANDOM);
}
else
{
auto name = title_sequence_manager_get_name(title_get_config_sequence());
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<utf8*>(name);
}
@ -2027,7 +2027,7 @@ private:
DrawTextEllipsised(dpi, screenCoords, 277, STR_STRING, ft, { colours[1] });
}
OpenRCT2String AdvancedTooltip(rct_widgetindex widgetIndex, rct_string_id fallback)
OpenRCT2String AdvancedTooltip(rct_widgetindex widgetIndex, StringId fallback)
{
if (widgetIndex == WIDX_PATH_TO_RCT1_BUTTON)
{
@ -2147,19 +2147,19 @@ private:
return !rct1path.empty();
}
static constexpr rct_string_id AutosaveNames[] = {
static constexpr StringId AutosaveNames[] = {
STR_SAVE_EVERY_MINUTE, STR_SAVE_EVERY_5MINUTES, STR_SAVE_EVERY_15MINUTES,
STR_SAVE_EVERY_30MINUTES, STR_SAVE_EVERY_HOUR, STR_SAVE_NEVER,
};
static constexpr rct_string_id TitleMusicNames[] = {
static constexpr StringId TitleMusicNames[] = {
STR_OPTIONS_MUSIC_VALUE_NONE,
STR_ROLLERCOASTER_TYCOON_1_DROPDOWN,
STR_ROLLERCOASTER_TYCOON_2_DROPDOWN,
STR_OPTIONS_MUSIC_VALUE_RANDOM,
};
static constexpr rct_string_id FullscreenModeNames[] = {
static constexpr StringId FullscreenModeNames[] = {
STR_OPTIONS_DISPLAY_WINDOWED,
STR_OPTIONS_DISPLAY_FULLSCREEN,
STR_OPTIONS_DISPLAY_FULLSCREEN_BORDERLESS,

View File

@ -34,7 +34,7 @@
#include <openrct2/world/Entrance.h>
#include <openrct2/world/Park.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_STRINGID;
static constexpr const StringId WINDOW_TITLE = STR_STRINGID;
static constexpr const int32_t WH = 224;
// clang-format off
@ -162,7 +162,7 @@ static std::array<uint32_t, WINDOW_PARK_PAGE_COUNT> _pagedHoldDownWidgets = {
};
struct WindowParkAward {
rct_string_id text;
StringId text;
uint32_t sprite;
};
@ -402,7 +402,7 @@ private:
auto parkName = park.Name.c_str();
auto ft = Formatter::Common();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(parkName);
}
@ -511,7 +511,7 @@ private:
auto parkName = park.Name.c_str();
auto ft = Formatter::Common();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(parkName);
}
widgets[WIDX_OPEN_OR_CLOSE].image = park_is_open() ? SPR_OPEN : SPR_CLOSED;
@ -599,7 +599,7 @@ private:
// Draw park closed / open label
auto ft = Formatter();
ft.Add<rct_string_id>(park_is_open() ? STR_PARK_OPEN : STR_PARK_CLOSED);
ft.Add<StringId>(park_is_open() ? STR_PARK_OPEN : STR_PARK_CLOSED);
auto* labelWidget = &widgets[WIDX_STATUS];
DrawTextEllipsised(
@ -1067,7 +1067,7 @@ private:
auto screenCoords = windowPos
+ ScreenCoordsXY{ widgets[WIDX_PAGE_BACKGROUND].left + 4, widgets[WIDX_PAGE_BACKGROUND].top + 7 };
auto ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(gScenarioDetails.c_str());
screenCoords.y += DrawTextWrapped(&dpi, screenCoords, 222, STR_BLACK_STRING, ft);
screenCoords.y += 5;
@ -1080,13 +1080,13 @@ private:
ft = Formatter();
if (gScenarioObjective.Type == OBJECTIVE_BUILD_THE_BEST)
{
rct_string_id rideTypeString = STR_NONE;
StringId rideTypeString = STR_NONE;
auto rideTypeId = gScenarioObjective.RideId;
if (rideTypeId != RIDE_TYPE_NULL && rideTypeId < RIDE_TYPE_COUNT)
{
rideTypeString = GetRideTypeDescriptor(rideTypeId).Naming.Name;
}
ft.Add<rct_string_id>(rideTypeString);
ft.Add<StringId>(rideTypeString);
}
else
{

View File

@ -25,7 +25,7 @@
#include <openrct2/localisation/Localisation.h>
#include <openrct2/world/Park.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_SET_PATROL_AREA;
static constexpr const StringId WINDOW_TITLE = STR_SET_PATROL_AREA;
static constexpr const int32_t WH = 54;
static constexpr const int32_t WW = 104;

View File

@ -332,7 +332,7 @@ void WindowPlayerOverviewPaint(rct_window* w, rct_drawpixelinfo* dpi)
auto screenCoords = w->windowPos + ScreenCoordsXY{ 90, 24 };
auto ft = Formatter();
ft.Add<rct_string_id>(STR_PING);
ft.Add<StringId>(STR_PING);
DrawTextBasic(dpi, screenCoords, STR_WINDOW_COLOUR_2_STRINGID, ft);
char ping[64];
snprintf(ping, 64, "%d ms", network_get_player_ping(player));
@ -345,11 +345,11 @@ void WindowPlayerOverviewPaint(rct_window* w, rct_drawpixelinfo* dpi)
ft = Formatter();
if (lastaction != -999)
{
ft.Add<rct_string_id>(network_get_action_name_string_id(lastaction));
ft.Add<StringId>(network_get_action_name_string_id(lastaction));
}
else
{
ft.Add<rct_string_id>(STR_ACTION_NA);
ft.Add<StringId>(STR_ACTION_NA);
}
DrawTextEllipsised(dpi, screenCoords, width, STR_LAST_ACTION_RAN, ft, { TextAlignment::CENTRE });

View File

@ -146,7 +146,7 @@ const int32_t window_research_tab_animation_loops[] = {
16,
};
static constexpr const rct_string_id ResearchStageNames[] = {
static constexpr const StringId ResearchStageNames[] = {
STR_RESEARCH_STAGE_INITIAL_RESEARCH,
STR_RESEARCH_STAGE_DESIGNING,
STR_RESEARCH_STAGE_COMPLETING_DESIGN,
@ -272,62 +272,62 @@ void WindowResearchDevelopmentPagePaint(rct_window* w, rct_drawpixelinfo* dpi, r
{
// Research type
auto ft = Formatter();
ft.Add<rct_string_id>(STR_RESEARCH_UNKNOWN);
ft.Add<StringId>(STR_RESEARCH_UNKNOWN);
DrawTextWrapped(dpi, screenCoords, 296, STR_RESEARCH_TYPE_LABEL, ft);
screenCoords.y += 25;
// Progress
ft = Formatter();
ft.Add<rct_string_id>(STR_RESEARCH_COMPLETED_AL);
ft.Add<StringId>(STR_RESEARCH_COMPLETED_AL);
DrawTextWrapped(dpi, screenCoords, 296, STR_RESEARCH_PROGRESS_LABEL, ft);
screenCoords.y += 15;
// Expected
ft = Formatter();
ft.Add<rct_string_id>(STR_RESEARCH_STAGE_UNKNOWN);
ft.Add<StringId>(STR_RESEARCH_STAGE_UNKNOWN);
DrawTextBasic(dpi, screenCoords, STR_RESEARCH_EXPECTED_LABEL, ft);
}
else
{
// Research type
auto ft = Formatter();
rct_string_id label = STR_RESEARCH_TYPE_LABEL;
StringId label = STR_RESEARCH_TYPE_LABEL;
if (gResearchProgressStage == RESEARCH_STAGE_INITIAL_RESEARCH)
{
ft.Add<rct_string_id>(STR_RESEARCH_UNKNOWN);
ft.Add<StringId>(STR_RESEARCH_UNKNOWN);
}
else if (gResearchProgressStage == RESEARCH_STAGE_DESIGNING)
{
ft.Add<rct_string_id>(gResearchNextItem->GetCategoryName());
ft.Add<StringId>(gResearchNextItem->GetCategoryName());
}
else if (gResearchNextItem->type == Research::EntryType::Ride)
{
const auto& rtd = GetRideTypeDescriptor(gResearchNextItem->baseRideType);
if (rtd.HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
ft.Add<rct_string_id>(gResearchNextItem->GetName());
ft.Add<StringId>(gResearchNextItem->GetName());
}
else if (gResearchNextItem->flags & RESEARCH_ENTRY_FLAG_FIRST_OF_TYPE)
{
ft.Add<rct_string_id>(rtd.Naming.Name);
ft.Add<StringId>(rtd.Naming.Name);
}
else
{
ft.Add<rct_string_id>(gResearchNextItem->GetName());
ft.Add<rct_string_id>(rtd.Naming.Name);
ft.Add<StringId>(gResearchNextItem->GetName());
ft.Add<StringId>(rtd.Naming.Name);
label = STR_RESEARCH_TYPE_LABEL_VEHICLE;
}
}
else
{
ft.Add<rct_string_id>(gResearchNextItem->GetName());
ft.Add<StringId>(gResearchNextItem->GetName());
}
DrawTextWrapped(dpi, screenCoords, 296, label, ft);
screenCoords.y += 25;
// Progress
ft = Formatter();
ft.Add<rct_string_id>(ResearchStageNames[gResearchProgressStage]);
ft.Add<StringId>(ResearchStageNames[gResearchProgressStage]);
DrawTextWrapped(dpi, screenCoords, 296, STR_RESEARCH_PROGRESS_LABEL, ft);
screenCoords.y += 15;
@ -336,13 +336,13 @@ void WindowResearchDevelopmentPagePaint(rct_window* w, rct_drawpixelinfo* dpi, r
if (gResearchProgressStage != RESEARCH_STAGE_INITIAL_RESEARCH && gResearchExpectedDay != 255)
{
// TODO: Should probably use game date format setting
ft.Add<rct_string_id>(STR_RESEARCH_EXPECTED_FORMAT);
ft.Add<rct_string_id>(DateDayNames[gResearchExpectedDay]);
ft.Add<rct_string_id>(DateGameMonthNames[gResearchExpectedMonth]);
ft.Add<StringId>(STR_RESEARCH_EXPECTED_FORMAT);
ft.Add<StringId>(DateDayNames[gResearchExpectedDay]);
ft.Add<StringId>(DateGameMonthNames[gResearchExpectedMonth]);
}
else
{
ft.Add<rct_string_id>(STR_RESEARCH_STAGE_UNKNOWN);
ft.Add<StringId>(STR_RESEARCH_STAGE_UNKNOWN);
}
DrawTextBasic(dpi, screenCoords, STR_RESEARCH_EXPECTED_LABEL, ft);
}
@ -352,12 +352,12 @@ void WindowResearchDevelopmentPagePaint(rct_window* w, rct_drawpixelinfo* dpi, r
if (gResearchLastItem.has_value())
{
rct_string_id lastDevelopmentFormat = STR_EMPTY;
StringId lastDevelopmentFormat = STR_EMPTY;
auto ft = Formatter();
if (gResearchLastItem->type == Research::EntryType::Scenery)
{
lastDevelopmentFormat = STR_RESEARCH_SCENERY_LABEL;
ft.Add<rct_string_id>(gResearchLastItem->GetName());
ft.Add<StringId>(gResearchLastItem->GetName());
}
else
{
@ -365,16 +365,16 @@ void WindowResearchDevelopmentPagePaint(rct_window* w, rct_drawpixelinfo* dpi, r
const auto& rtd = GetRideTypeDescriptor(gResearchLastItem->baseRideType);
if (rtd.HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
ft.Add<rct_string_id>(gResearchLastItem->GetName());
ft.Add<StringId>(gResearchLastItem->GetName());
}
else if (gResearchLastItem->flags & RESEARCH_ENTRY_FLAG_FIRST_OF_TYPE)
{
ft.Add<rct_string_id>(rtd.Naming.Name);
ft.Add<StringId>(rtd.Naming.Name);
}
else
{
ft.Add<rct_string_id>(gResearchLastItem->GetName());
ft.Add<rct_string_id>(rtd.Naming.Name);
ft.Add<StringId>(gResearchLastItem->GetName());
ft.Add<StringId>(rtd.Naming.Name);
lastDevelopmentFormat = STR_RESEARCH_VEHICLE_LABEL;
}
}

View File

@ -66,7 +66,7 @@
using namespace OpenRCT2;
using namespace OpenRCT2::TrackMetaData;
static constexpr const rct_string_id WINDOW_TITLE = STR_RIDE_WINDOW_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_RIDE_WINDOW_TITLE;
static constexpr const int32_t WH = 207;
static constexpr const int32_t WW = 316;
@ -445,7 +445,7 @@ static void WindowRideVehicleResize(rct_window* w);
static void WindowRideVehicleMousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget);
static void WindowRideVehicleDropdown(rct_window* w, rct_widgetindex widgetIndex, int32_t dropdownIndex);
static void WindowRideVehicleUpdate(rct_window* w);
static OpenRCT2String WindowRideVehicleTooltip(rct_window* const w, const rct_widgetindex widgetIndex, rct_string_id fallback);
static OpenRCT2String WindowRideVehicleTooltip(rct_window* const w, const rct_widgetindex widgetIndex, StringId fallback);
static void WindowRideVehicleInvalidate(rct_window* w);
static void WindowRideVehiclePaint(rct_window* w, rct_drawpixelinfo* dpi);
static void WindowRideVehicleScrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex);
@ -507,7 +507,7 @@ static void WindowRideGraphsMousedown(rct_window* w, rct_widgetindex widgetIndex
static void WindowRideGraphsUpdate(rct_window* w);
static void WindowRideGraphsScrollgetheight(rct_window* w, int32_t scrollIndex, int32_t* width, int32_t* height);
static void WindowRideGraphs15(rct_window* w, int32_t scrollIndex, int32_t scrollAreaType);
static OpenRCT2String WindowRideGraphsTooltip(rct_window* w, const rct_widgetindex widgetIndex, const rct_string_id fallback);
static OpenRCT2String WindowRideGraphsTooltip(rct_window* w, const rct_widgetindex widgetIndex, const StringId fallback);
static void WindowRideGraphsInvalidate(rct_window* w);
static void WindowRideGraphsPaint(rct_window* w, rct_drawpixelinfo* dpi);
static void WindowRideGraphsScrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex);
@ -714,7 +714,7 @@ static constexpr const int32_t window_ride_tab_animation_frames[] = {
static_assert(std::size(window_ride_tab_animation_frames) == WINDOW_RIDE_PAGE_COUNT);
// clang-format off
static constexpr const rct_string_id RatingNames[] = {
static constexpr const StringId RatingNames[] = {
STR_RATING_LOW,
STR_RATING_MEDIUM,
STR_RATING_HIGH,
@ -724,7 +724,7 @@ static constexpr const rct_string_id RatingNames[] = {
};
// clang-format on
static constexpr const rct_string_id RideBreakdownReasonNames[] = {
static constexpr const StringId RideBreakdownReasonNames[] = {
STR_RIDE_BREAKDOWN_SAFETY_CUT_OUT, // BREAKDOWN_SAFETY_CUT_OUT
STR_RIDE_BREAKDOWN_RESTRAINTS_STUCK_CLOSED, // BREAKDOWN_RESTRAINTS_STUCK_CLOSED
STR_RIDE_BREAKDOWN_RESTRAINTS_STUCK_OPEN, // BREAKDOWN_RESTRAINTS_STUCK_OPEN
@ -736,7 +736,7 @@ static constexpr const rct_string_id RideBreakdownReasonNames[] = {
};
static_assert(std::size(RideBreakdownReasonNames) == BREAKDOWN_COUNT);
const rct_string_id ColourSchemeNames[] = {
const StringId ColourSchemeNames[] = {
STR_MAIN_COLOUR_SCHEME, // RIDE_COLOUR_SCHEME_MAIN
STR_ALTERNATIVE_COLOUR_SCHEME_1, // RIDE_COLOUR_SCHEME_ADDITIONAL_1
STR_ALTERNATIVE_COLOUR_SCHEME_2, // RIDE_COLOUR_SCHEME_ADDITIONAL_2
@ -744,7 +744,7 @@ const rct_string_id ColourSchemeNames[] = {
};
static_assert(std::size(ColourSchemeNames) == RIDE_COLOUR_SCHEME_COUNT);
static constexpr const rct_string_id VehicleLoadNames[] = {
static constexpr const StringId VehicleLoadNames[] = {
STR_QUARTER_LOAD, // WAIT_FOR_LOAD_QUARTER
STR_HALF_LOAD, // WAIT_FOR_LOAD_HALF
STR_THREE_QUARTER_LOAD, // WAIT_FOR_LOAD_THREE_QUARTER
@ -753,14 +753,14 @@ static constexpr const rct_string_id VehicleLoadNames[] = {
};
static_assert(std::size(VehicleLoadNames) == WAIT_FOR_LOAD_COUNT);
static constexpr const rct_string_id VehicleColourSchemeNames[] = {
static constexpr const StringId VehicleColourSchemeNames[] = {
STR_ALL_VEHICLES_IN_SAME_COLOURS, // RIDE_COLOUR_SCHEME_MODE_ALL_SAME,
STR_DIFFERENT_COLOURS_PER, // RIDE_COLOUR_SCHEME_MODE_DIFFERENT_PER_TRAIN,
STR_DIFFERENT_COLOURS_PER_VEHICLE, // RIDE_COLOUR_SCHEME_MODE_DIFFERENT_PER_CAR,
};
static_assert(std::size(VehicleColourSchemeNames) == RIDE_COLOUR_SCHEME_MODE_COUNT);
static constexpr const rct_string_id VehicleStatusNames[] = {
static constexpr const StringId VehicleStatusNames[] = {
STR_MOVING_TO_END_OF, // Vehicle::Status::MovingToEndOfStation
STR_WAITING_FOR_PASSENGERS_AT, // Vehicle::Status::WaitingForPassengers
STR_WAITING_TO_DEPART, // Vehicle::Status::WaitingToDepart
@ -794,7 +794,7 @@ static constexpr const rct_string_id VehicleStatusNames[] = {
STR_STOPPED_BY_BLOCK_BRAKES, // Vehicle::Status::StoppedByBlockBrakes
};
static constexpr const rct_string_id SingleSessionVehicleStatusNames[] = {
static constexpr const StringId SingleSessionVehicleStatusNames[] = {
STR_STOPPING_0, // Vehicle::Status::MovingToEndOfStation
STR_WAITING_FOR_PASSENGERS, // Vehicle::Status::WaitingForPassengers
STR_WAITING_TO_START, // Vehicle::Status::WaitingToDepart
@ -806,7 +806,7 @@ static constexpr const rct_string_id SingleSessionVehicleStatusNames[] = {
struct WindowRideMazeDesignOption
{
rct_string_id text;
StringId text;
uint32_t sprite;
};
@ -822,7 +822,7 @@ struct GraphsYAxis
uint8_t interval;
int8_t unit;
int8_t unit_interval;
rct_string_id label;
StringId label;
};
/** rct2: 0x0098DD98 */
@ -840,7 +840,7 @@ static constexpr auto RIDE_G_FORCES_RED_LATERAL = FIXED_2DP(2, 80);
struct RideTypeLabel
{
uint8_t ride_type_id;
rct_string_id label_id;
StringId label_id;
const char* label_string;
};
@ -851,7 +851,7 @@ static std::vector<RideTypeLabel> RideDropdownData;
struct VehicleTypeLabel
{
ObjectEntryIndex subtype_id;
rct_string_id label_id;
StringId label_id;
const char* label_string;
};
@ -1824,7 +1824,7 @@ struct RideStatusDropdownInfo
int32_t DefaultIndex = -1;
};
static void WindowRideSetDropdown(RideStatusDropdownInfo& info, RideStatus status, rct_string_id text)
static void WindowRideSetDropdown(RideStatusDropdownInfo& info, RideStatus status, StringId text)
{
if (info.Ride->SupportsStatus(status))
{
@ -1864,7 +1864,7 @@ static void WindowRideShowOpenDropdown(rct_window* w, rct_widget* widget)
gDropdownDefaultIndex = info.DefaultIndex;
}
static rct_string_id GetRideTypeNameForDropdown(uint8_t rideType)
static StringId GetRideTypeNameForDropdown(uint8_t rideType)
{
switch (rideType)
{
@ -2421,7 +2421,7 @@ static void WindowRideMainInvalidate(rct_window* w)
*
* rct2: 0x006AF10A
*/
static rct_string_id WindowRideGetStatusOverallView(rct_window* w, Formatter& ft)
static StringId WindowRideGetStatusOverallView(rct_window* w, Formatter& ft)
{
auto stringId = STR_NONE;
auto ride = get_ride(w->rideId);
@ -2441,7 +2441,7 @@ static rct_string_id WindowRideGetStatusOverallView(rct_window* w, Formatter& ft
*
* rct2: 0x006AEFEF
*/
static rct_string_id WindowRideGetStatusVehicle(rct_window* w, Formatter& ft)
static StringId WindowRideGetStatusVehicle(rct_window* w, Formatter& ft)
{
auto ride = get_ride(w->rideId);
if (ride == nullptr)
@ -2460,7 +2460,7 @@ static rct_string_id WindowRideGetStatusVehicle(rct_window* w, Formatter& ft)
{
if (ride->GetRideTypeDescriptor().SupportsTrackPiece(TRACK_BLOCK_BRAKES) && vehicle->velocity == 0)
{
ft.Add<rct_string_id>(STR_STOPPED_BY_BLOCK_BRAKES);
ft.Add<StringId>(STR_STOPPED_BY_BLOCK_BRAKES);
return STR_BLACK_STRING;
}
}
@ -2476,11 +2476,11 @@ static rct_string_id WindowRideGetStatusVehicle(rct_window* w, Formatter& ft)
stringId = SingleSessionVehicleStatusNames[static_cast<size_t>(vehicle->status)];
}
ft.Add<rct_string_id>(stringId);
ft.Add<StringId>(stringId);
uint16_t speedInMph = (abs(vehicle->velocity) * 9) >> 18;
ft.Add<uint16_t>(speedInMph);
const RideComponentName stationName = GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.station);
ft.Add<rct_string_id>(ride->num_stations > 1 ? stationName.number : stationName.singular);
ft.Add<StringId>(ride->num_stations > 1 ? stationName.number : stationName.singular);
ft.Add<uint16_t>(vehicle->current_station.ToUnderlying() + 1);
return stringId != STR_CRASHING && stringId != STR_CRASHED_0 ? STR_BLACK_STRING : STR_RED_OUTLINED_STRING;
}
@ -2489,7 +2489,7 @@ static rct_string_id WindowRideGetStatusVehicle(rct_window* w, Formatter& ft)
*
* rct2: 0x006AEF65
*/
static rct_string_id WindowRideGetStatusStation(rct_window* w, Formatter& ft)
static StringId WindowRideGetStatusStation(rct_window* w, Formatter& ft)
{
auto ride = get_ride(w->rideId);
if (ride == nullptr)
@ -2502,7 +2502,7 @@ static rct_string_id WindowRideGetStatusStation(rct_window* w, Formatter& ft)
}
const auto& station = ride->GetStation(*stationIndex);
rct_string_id stringId = STR_EMPTY;
StringId stringId = STR_EMPTY;
// Entrance / exit
if (ride->status == RideStatus::Closed)
{
@ -2526,12 +2526,12 @@ static rct_string_id WindowRideGetStatusStation(rct_window* w, Formatter& ft)
else if (queueLength > 1)
stringId = STR_QUEUE_PEOPLE;
ft.Add<rct_string_id>(stringId);
ft.Add<StringId>(stringId);
ft.Add<uint16_t>(queueLength);
}
else
{
ft.Add<rct_string_id>(stringId);
ft.Add<StringId>(stringId);
}
return STR_BLACK_STRING;
@ -2541,7 +2541,7 @@ static rct_string_id WindowRideGetStatusStation(rct_window* w, Formatter& ft)
*
* rct2: 0x006AEE73
*/
static rct_string_id WindowRideGetStatus(rct_window* w, Formatter& ft)
static StringId WindowRideGetStatus(rct_window* w, Formatter& ft)
{
auto ride = get_ride(w->rideId);
if (w->ride.view == 0)
@ -2582,18 +2582,18 @@ static void WindowRideMainPaint(rct_window* w, rct_drawpixelinfo* dpi)
{
if (w->ride.view > ride->num_vehicles)
{
ft.Add<rct_string_id>(GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.station).number);
ft.Add<StringId>(GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.station).number);
ft.Add<uint16_t>(w->ride.view - ride->num_vehicles);
}
else
{
ft.Add<rct_string_id>(GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.vehicle).number);
ft.Add<StringId>(GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.vehicle).number);
ft.Add<uint16_t>(w->ride.view);
}
}
else
{
ft.Add<rct_string_id>(STR_OVERALL_VIEW);
ft.Add<StringId>(STR_OVERALL_VIEW);
}
widget = &window_ride_main_widgets[WIDX_VIEW];
@ -2604,7 +2604,7 @@ static void WindowRideMainPaint(rct_window* w, rct_drawpixelinfo* dpi)
// Status
ft = Formatter();
widget = &window_ride_main_widgets[WIDX_STATUS];
rct_string_id rideStatus = WindowRideGetStatus(w, ft);
StringId rideStatus = WindowRideGetStatus(w, ft);
DrawTextEllipsised(
dpi, w->windowPos + ScreenCoordsXY{ (widget->left + widget->right) / 2, widget->top }, widget->width(), rideStatus, ft,
{ TextAlignment::CENTRE });
@ -2720,7 +2720,7 @@ static void WindowRideVehicleUpdate(rct_window* w)
widget_invalidate(*w, WIDX_TAB_2);
}
static OpenRCT2String WindowRideVehicleTooltip(rct_window* const w, const rct_widgetindex widgetIndex, rct_string_id fallback)
static OpenRCT2String WindowRideVehicleTooltip(rct_window* const w, const rct_widgetindex widgetIndex, StringId fallback)
{
auto ride = get_ride(w->rideId);
if (ride == nullptr)
@ -2736,12 +2736,12 @@ static OpenRCT2String WindowRideVehicleTooltip(rct_window* const w, const rct_wi
ft.Increment(12);
RideComponentType vehicleType = ride->GetRideTypeDescriptor().NameConvention.vehicle;
rct_string_id stringId = GetRideComponentName(vehicleType).count;
StringId stringId = GetRideComponentName(vehicleType).count;
if (ride->max_trains > 1)
{
stringId = GetRideComponentName(vehicleType).count_plural;
}
ft.Add<rct_string_id>(stringId);
ft.Add<StringId>(stringId);
ft.Add<uint16_t>(ride->max_trains);
return { fallback, ft };
}
@ -2757,12 +2757,12 @@ static OpenRCT2String WindowRideVehicleTooltip(rct_window* const w, const rct_wi
ft.Increment(16);
ft.Add<uint16_t>(std::max(uint8_t(1), ride->MaxCarsPerTrain) - rideEntry->zero_cars);
rct_string_id stringId = GetRideComponentName(RideComponentType::Car).singular;
StringId stringId = GetRideComponentName(RideComponentType::Car).singular;
if (ride->MaxCarsPerTrain - rideEntry->zero_cars > 1)
{
stringId = GetRideComponentName(RideComponentType::Car).plural;
}
ft.Add<rct_string_id>(stringId);
ft.Add<StringId>(stringId);
return { fallback, ft };
}
}
@ -2777,7 +2777,7 @@ static void WindowRideVehicleInvalidate(rct_window* w)
{
rct_widget* widgets;
rct_ride_entry* rideEntry;
rct_string_id stringId;
StringId stringId;
int32_t carsPerTrain;
widgets = window_ride_page_widgets[w->page];
@ -2840,7 +2840,7 @@ static void WindowRideVehicleInvalidate(rct_window* w)
{
stringId = GetRideComponentName(vehicleType).count_plural;
}
ft.Add<rct_string_id>(stringId);
ft.Add<StringId>(stringId);
ft.Add<uint16_t>(ride->num_vehicles);
ft.Increment(8);
@ -2881,13 +2881,13 @@ static void WindowRideVehiclePaint(rct_window* w, rct_drawpixelinfo* dpi)
// Description
auto ft = Formatter();
ft.Add<rct_string_id>(rideEntry->naming.Description);
ft.Add<StringId>(rideEntry->naming.Description);
screenCoords.y += DrawTextWrapped(dpi, screenCoords, 300, STR_BLACK_STRING, ft, { TextAlignment::LEFT });
screenCoords.y += 2;
// Capacity
ft = Formatter();
ft.Add<rct_string_id>(rideEntry->capacity);
ft.Add<StringId>(rideEntry->capacity);
DrawTextBasic(dpi, screenCoords, STR_CAPACITY, ft);
// Excitement Factor
@ -3457,7 +3457,7 @@ static void WindowRideOperatingTextinput(rct_window* w, rct_widgetindex widgetIn
static void WindowRideOperatingInvalidate(rct_window* w)
{
rct_widget* widgets;
rct_string_id format, caption, tooltip;
StringId format, caption, tooltip;
widgets = window_ride_page_widgets[w->page];
if (w->widgets != widgets)
@ -3577,9 +3577,9 @@ static void WindowRideOperatingInvalidate(rct_window* w)
ft.Rewind();
ft.Increment(10);
ft.Add<rct_string_id>(STR_FORMAT_SECONDS);
ft.Add<StringId>(STR_FORMAT_SECONDS);
ft.Add<uint16_t>(ride->min_waiting_time);
ft.Add<rct_string_id>(STR_FORMAT_SECONDS);
ft.Add<StringId>(STR_FORMAT_SECONDS);
ft.Add<uint16_t>(ride->max_waiting_time);
if (ride->depart_flags & RIDE_DEPART_WAIT_FOR_LOAD)
@ -4135,7 +4135,7 @@ static void WindowRideMaintenancePaint(rct_window* w, rct_drawpixelinfo* dpi)
screenCoords.y += 26;
// Last inspection
rct_string_id stringId;
StringId stringId;
if (ride->last_inspection <= 1)
stringId = STR_TIME_SINCE_LAST_INSPECTION_MINUTE;
else if (ride->last_inspection <= 240)
@ -4154,7 +4154,7 @@ static void WindowRideMaintenancePaint(rct_window* w, rct_drawpixelinfo* dpi)
stringId = (ride->lifecycle_flags & RIDE_LIFECYCLE_BROKEN_DOWN) ? STR_CURRENT_BREAKDOWN : STR_LAST_BREAKDOWN;
ft = Formatter();
ft.Add<rct_string_id>(RideBreakdownReasonNames[ride->breakdown_reason]);
ft.Add<StringId>(RideBreakdownReasonNames[ride->breakdown_reason]);
DrawTextBasic(dpi, screenCoords, stringId, ft);
screenCoords.y += 12;
@ -4341,7 +4341,7 @@ static void WindowRideColourMousedown(rct_window* w, rct_widgetindex widgetIndex
{
VehicleColour vehicleColour;
int32_t i, numItems;
rct_string_id stringId;
StringId stringId;
auto ride = get_ride(w->rideId);
if (ride == nullptr)
@ -4815,9 +4815,9 @@ static void WindowRideColourInvalidate(rct_window* w)
}
ft.Rewind();
ft.Increment(6);
ft.Add<rct_string_id>(VehicleColourSchemeNames[vehicleColourSchemeType]);
ft.Add<rct_string_id>(GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.vehicle).singular);
ft.Add<rct_string_id>(GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.vehicle).capitalised);
ft.Add<StringId>(VehicleColourSchemeNames[vehicleColourSchemeType]);
ft.Add<StringId>(GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.vehicle).singular);
ft.Add<StringId>(GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.vehicle).capitalised);
ft.Add<uint16_t>(w->vehicleIndex + 1);
// Vehicle index
@ -4849,7 +4849,7 @@ static void WindowRideColourInvalidate(rct_window* w)
ft.Rewind();
ft.Increment(14);
ft.Add<rct_string_id>(ColourSchemeNames[colourScheme]);
ft.Add<StringId>(ColourSchemeNames[colourScheme]);
WindowRideAnchorBorderWidgets(w);
window_align_tabs(w, WIDX_TAB_1, WIDX_TAB_10);
@ -5209,7 +5209,7 @@ static void WindowRideMusicInvalidate(rct_window* w)
ride->FormatNameTo(ft);
// Set selected music
rct_string_id musicName = STR_NONE;
StringId musicName = STR_NONE;
auto& objManager = GetContext()->GetObjectManager();
auto musicObj = static_cast<MusicObject*>(objManager.GetLoadedObject(ObjectType::Music, ride->music));
if (musicObj != nullptr)
@ -5251,7 +5251,7 @@ static void WindowRideMusicPaint(rct_window* w, rct_drawpixelinfo* dpi)
#pragma region Measurements
static rct_string_id GetRatingName(ride_rating rating)
static StringId GetRatingName(ride_rating rating)
{
int32_t index = std::clamp<int32_t>(rating >> 8, 0, static_cast<int32_t>(std::size(RatingNames)) - 1);
return RatingNames[index];
@ -5647,11 +5647,11 @@ static void WindowRideMeasurementsPaint(rct_window* w, rct_drawpixelinfo* dpi)
if (ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED)
{
// Excitement
rct_string_id ratingName = GetRatingName(ride->excitement);
StringId ratingName = GetRatingName(ride->excitement);
auto ft = Formatter();
ft.Add<uint32_t>(ride->excitement);
ft.Add<rct_string_id>(ratingName);
rct_string_id stringId = !ride_has_ratings(ride) ? STR_EXCITEMENT_RATING_NOT_YET_AVAILABLE : STR_EXCITEMENT_RATING;
ft.Add<StringId>(ratingName);
StringId stringId = !ride_has_ratings(ride) ? STR_EXCITEMENT_RATING_NOT_YET_AVAILABLE : STR_EXCITEMENT_RATING;
DrawTextBasic(dpi, screenCoords, stringId, ft);
screenCoords.y += LIST_ROW_HEIGHT;
@ -5659,7 +5659,7 @@ static void WindowRideMeasurementsPaint(rct_window* w, rct_drawpixelinfo* dpi)
ratingName = GetRatingName(ride->intensity);
ft = Formatter();
ft.Add<uint32_t>(ride->intensity);
ft.Add<rct_string_id>(ratingName);
ft.Add<StringId>(ratingName);
stringId = STR_INTENSITY_RATING;
if (!ride_has_ratings(ride))
@ -5674,7 +5674,7 @@ static void WindowRideMeasurementsPaint(rct_window* w, rct_drawpixelinfo* dpi)
ratingName = GetRatingName(ride->nausea);
ft = Formatter();
ft.Add<uint32_t>(ride->nausea);
ft.Add<rct_string_id>(ratingName);
ft.Add<StringId>(ratingName);
stringId = !ride_has_ratings(ride) ? STR_NAUSEA_RATING_NOT_YET_AVAILABLE : STR_NAUSEA_RATING;
DrawTextBasic(dpi, screenCoords, stringId, ft);
screenCoords.y += 2 * LIST_ROW_HEIGHT;
@ -5756,14 +5756,14 @@ static void WindowRideMeasurementsPaint(rct_window* w, rct_drawpixelinfo* dpi)
if (length != 0)
{
length >>= 16;
ft.Add<rct_string_id>(STR_RIDE_LENGTH_ENTRY_WITH_SEPARATOR);
ft.Add<StringId>(STR_RIDE_LENGTH_ENTRY_WITH_SEPARATOR);
ft.Add<uint16_t>(length & 0xFFFF);
numLengths++;
}
}
if (numLengths == 0)
{
ft.Add<rct_string_id>(STR_RIDE_LENGTH_ENTRY);
ft.Add<StringId>(STR_RIDE_LENGTH_ENTRY);
ft.Add<uint16_t>(0);
numLengths++;
}
@ -5773,7 +5773,7 @@ static void WindowRideMeasurementsPaint(rct_window* w, rct_drawpixelinfo* dpi)
// therefore we set the last entry to use the no-separator format now, post-format
ft.Rewind();
ft.Increment((numLengths - 1) * 4);
ft.Add<rct_string_id>(STR_RIDE_LENGTH_ENTRY);
ft.Add<StringId>(STR_RIDE_LENGTH_ENTRY);
}
ft.Rewind();
ft.Increment(numLengths * 4);
@ -6011,7 +6011,7 @@ static void WindowRideGraphs15(rct_window* w, int32_t scrollIndex, int32_t scrol
*
* rct2: 0x006AEA05
*/
static OpenRCT2String WindowRideGraphsTooltip(rct_window* w, const rct_widgetindex widgetIndex, const rct_string_id fallback)
static OpenRCT2String WindowRideGraphsTooltip(rct_window* w, const rct_widgetindex widgetIndex, const StringId fallback)
{
if (widgetIndex == WIDX_GRAPH)
{
@ -6023,7 +6023,7 @@ static OpenRCT2String WindowRideGraphsTooltip(rct_window* w, const rct_widgetind
{
auto ft = Formatter();
ft.Increment(2);
ft.Add<rct_string_id>(GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.vehicle).number);
ft.Add<StringId>(GetRideComponentName(ride->GetRideTypeDescriptor().NameConvention.vehicle).number);
ft.Add<uint16_t>(measurement->vehicle_index + 1);
return { fallback, ft };
}
@ -6159,7 +6159,7 @@ static void WindowRideGraphsScrollpaint(rct_window* w, rct_drawpixelinfo* dpi, i
// Horizontal grid lines
int32_t listType = w->list_information_type & 0xFF;
int16_t yUnit = window_graphs_y_axi[listType].unit;
rct_string_id stringID = window_graphs_y_axi[listType].label;
StringId stringID = window_graphs_y_axi[listType].label;
int16_t yUnitInterval = window_graphs_y_axi[listType].unit_interval;
int16_t yInterval = window_graphs_y_axi[listType].interval;
@ -6721,7 +6721,7 @@ static void WindowRideIncomeInvalidate(rct_window* w)
*/
static void WindowRideIncomePaint(rct_window* w, rct_drawpixelinfo* dpi)
{
rct_string_id stringId;
StringId stringId;
money64 profit;
ShopItem primaryItem, secondaryItem;
@ -6950,7 +6950,7 @@ static void WindowRideCustomerPaint(rct_window* w, rct_drawpixelinfo* dpi)
{
ShopItem shopItem;
int16_t popularity, satisfaction, queueTime;
rct_string_id stringId;
StringId stringId;
WindowDrawWidgets(*w, dpi);
WindowRideDrawTabImages(dpi, w);
@ -7026,7 +7026,7 @@ static void WindowRideCustomerPaint(rct_window* w, rct_drawpixelinfo* dpi)
if (shopItem != ShopItem::None)
{
ft = Formatter();
ft.Add<rct_string_id>(GetShopItemDescriptor(shopItem).Naming.Plural);
ft.Add<StringId>(GetShopItemDescriptor(shopItem).Naming.Plural);
ft.Add<uint32_t>(ride->no_primary_items_sold);
DrawTextBasic(dpi, screenCoords, STR_ITEMS_SOLD, ft);
screenCoords.y += LIST_ROW_HEIGHT;
@ -7038,7 +7038,7 @@ static void WindowRideCustomerPaint(rct_window* w, rct_drawpixelinfo* dpi)
if (shopItem != ShopItem::None)
{
ft = Formatter();
ft.Add<rct_string_id>(GetShopItemDescriptor(shopItem).Naming.Plural);
ft.Add<StringId>(GetShopItemDescriptor(shopItem).Naming.Plural);
ft.Add<uint32_t>(ride->no_secondary_items_sold);
DrawTextBasic(dpi, screenCoords, STR_ITEMS_SOLD, ft);
screenCoords.y += LIST_ROW_HEIGHT;

View File

@ -42,7 +42,7 @@
#include <openrct2/world/Footpath.h>
#include <openrct2/world/Park.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_RIDE_CONSTRUCTION_WINDOW_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_RIDE_CONSTRUCTION_WINDOW_TITLE;
static constexpr const int32_t WH = 394;
static constexpr const int32_t WW = 166;
static constexpr const uint16_t ARROW_PULSE_DURATION = 200;
@ -151,10 +151,10 @@ static ScreenCoordsXY _trackPlaceShiftStart;
static int32_t _trackPlaceShiftZ;
static int32_t _trackPlaceZ;
static money32 _trackPlaceCost;
static rct_string_id _trackPlaceErrorMessage;
static StringId _trackPlaceErrorMessage;
static bool _autoRotatingShop;
static constexpr const rct_string_id RideConstructionSeatAngleRotationStrings[] = {
static constexpr const StringId RideConstructionSeatAngleRotationStrings[] = {
STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_NEG_180, STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_NEG_135,
STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_NEG_90, STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_NEG_45,
STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_0, STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_45,
@ -1430,7 +1430,7 @@ public:
return;
}
rct_string_id stringId = STR_RIDE_CONSTRUCTION_SPECIAL;
StringId stringId = STR_RIDE_CONSTRUCTION_SPECIAL;
if (_currentTrackCurve & RideConstructionSpecialPieceSelected)
{
const auto& ted = GetTrackElementDescriptor(_currentTrackCurve & ~RideConstructionSpecialPieceSelected);
@ -2236,7 +2236,7 @@ private:
if (res.Error != GameActions::Status::Ok)
{
_trackPlaceCost = MONEY32_UNDEFINED;
_trackPlaceErrorMessage = std::get<rct_string_id>(res.ErrorMessage);
_trackPlaceErrorMessage = std::get<StringId>(res.ErrorMessage);
}
else
{
@ -2492,7 +2492,7 @@ private:
track_type_t trackPiece = _currentPossibleRideConfigurations[i];
const auto& ted = GetTrackElementDescriptor(trackPiece);
rct_string_id trackPieceStringId = ted.Description;
StringId trackPieceStringId = ted.Description;
if (trackPieceStringId == STR_RAPIDS)
{
auto currentRide = get_ride(_currentRideIndex);
@ -3489,7 +3489,7 @@ void ride_construction_tooldown_construct(const ScreenCoordsXY& screenCoords)
else
{
_trackPlaceCost = MONEY32_UNDEFINED;
_trackPlaceErrorMessage = std::get<rct_string_id>(mazeSetTrackResult.ErrorMessage);
_trackPlaceErrorMessage = std::get<StringId>(mazeSetTrackResult.ErrorMessage);
}
gDisableErrorWindowSound = false;
@ -3497,7 +3497,7 @@ void ride_construction_tooldown_construct(const ScreenCoordsXY& screenCoords)
if (mazeSetTrackResult.Error != GameActions::Status::Ok)
{
_rideConstructionState = RideConstructionState::Place;
rct_string_id errorText = std::get<rct_string_id>(mazeSetTrackResult.ErrorMessage);
StringId errorText = std::get<StringId>(mazeSetTrackResult.ErrorMessage);
z -= 8;
if (errorText == STR_NOT_ENOUGH_CASH_REQUIRES || errorText == STR_CAN_ONLY_BUILD_THIS_UNDERWATER
|| errorText == STR_CAN_ONLY_BUILD_THIS_ON_WATER || errorText == STR_RIDE_CANT_BUILD_THIS_UNDERWATER
@ -3547,7 +3547,7 @@ void ride_construction_tooldown_construct(const ScreenCoordsXY& screenCoords)
if (_trackPlaceCost == MONEY32_UNDEFINED)
{
rct_string_id errorText = _trackPlaceErrorMessage;
StringId errorText = _trackPlaceErrorMessage;
z -= 8;
if (errorText == STR_NOT_ENOUGH_CASH_REQUIRES || errorText == STR_CAN_ONLY_BUILD_THIS_UNDERWATER
|| errorText == STR_CAN_ONLY_BUILD_THIS_ON_WATER || errorText == STR_CAN_ONLY_BUILD_THIS_ABOVE_GROUND

View File

@ -26,7 +26,7 @@
#include <openrct2/windows/Intent.h>
#include <openrct2/world/Park.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_NONE;
static constexpr const StringId WINDOW_TITLE = STR_NONE;
static constexpr const int32_t WH = 240;
static constexpr const int32_t WW = 340;
@ -99,7 +99,7 @@ enum
DROPDOWN_LIST_COUNT,
};
static constexpr const rct_string_id ride_info_type_string_mapping[DROPDOWN_LIST_COUNT] = {
static constexpr const StringId ride_info_type_string_mapping[DROPDOWN_LIST_COUNT] = {
STR_STATUS,
STR_POPULARITY,
STR_SATISFACTION,
@ -120,7 +120,7 @@ static constexpr const rct_string_id ride_info_type_string_mapping[DROPDOWN_LIST
STR_RIDE_LIST_NAUSEA,
};
static constexpr const rct_string_id ride_list_statusbar_count_strings[PAGE_COUNT] = {
static constexpr const StringId ride_list_statusbar_count_strings[PAGE_COUNT] = {
STR_NUMBER_RIDES,
STR_NUMBER_SHOPS_AND_STALLS,
STR_NUMBER_RESTROOMS_AND_INFORMATION_KIOSKS,
@ -147,7 +147,7 @@ static constexpr const bool ride_info_type_money_mapping[DROPDOWN_LIST_COUNT] =
false, // Nausea
};
static constexpr const rct_string_id page_names[] = {
static constexpr const StringId page_names[] = {
STR_RIDES,
STR_SHOPS_AND_STALLS,
STR_RESTROOMS_AND_INFORMATION_KIOSKS,
@ -536,7 +536,7 @@ public:
auto y = 0;
for (size_t i = 0; i < _rideList.size(); i++)
{
rct_string_id format = (_quickDemolishMode ? STR_RED_STRINGID : STR_BLACK_STRING);
StringId format = (_quickDemolishMode ? STR_RED_STRINGID : STR_BLACK_STRING);
if (i == static_cast<size_t>(selected_list_item))
{
// Background highlight
@ -558,7 +558,7 @@ public:
ft = Formatter();
ft.Increment(2);
auto formatSecondaryEnabled = true;
rct_string_id formatSecondary = 0;
StringId formatSecondary = 0;
switch (_windowRideListInformationType)
{
case INFORMATION_TYPE_STATUS:
@ -727,7 +727,7 @@ public:
if (formatSecondaryEnabled)
{
ft.Rewind();
ft.Add<rct_string_id>(formatSecondary);
ft.Add<StringId>(formatSecondary);
}
DrawTextEllipsised(&dpi, { 160, y - 1 }, 157, format, ft);
y += SCROLLABLE_ROW_HEIGHT;

View File

@ -60,7 +60,7 @@ static rct_widget window_quit_prompt_widgets[] = {
WIDGETS_END,
};
static constexpr const rct_string_id window_save_prompt_labels[][2] = {
static constexpr const StringId window_save_prompt_labels[][2] = {
{ STR_LOAD_GAME_PROMPT_TITLE, STR_SAVE_BEFORE_LOADING },
{ STR_QUIT_GAME_PROMPT_TITLE, STR_SAVE_BEFORE_QUITTING },
{ STR_QUIT_GAME_2_PROMPT_TITLE, STR_SAVE_BEFORE_QUITTING_2 },
@ -87,7 +87,7 @@ static rct_window_event_list window_save_prompt_events([](auto& events)
rct_window* WindowSavePromptOpen()
{
int32_t width, height;
rct_string_id stringId;
StringId stringId;
rct_window* window;
PromptMode prompt_mode;
rct_widget* widgets;

View File

@ -26,7 +26,7 @@
#include <openrct2/util/Util.h>
#include <vector>
static constexpr const rct_string_id WINDOW_TITLE = STR_SELECT_SCENARIO;
static constexpr const StringId WINDOW_TITLE = STR_SELECT_SCENARIO;
static constexpr const int32_t WW = 734;
static constexpr const int32_t WH = 384;
static constexpr const int32_t SidebarWidth = 180;
@ -47,7 +47,7 @@ struct ScenarioListItem
{
struct
{
rct_string_id string_id;
StringId string_id;
} heading;
struct
{
@ -90,7 +90,7 @@ static rct_widget window_scenarioselect_widgets[] = {
WIDGETS_END,
};
static constexpr const rct_string_id ScenarioOriginStringIds[] = {
static constexpr const StringId ScenarioOriginStringIds[] = {
STR_SCENARIO_CATEGORY_RCT1,
STR_SCENARIO_CATEGORY_RCT1_AA,
STR_SCENARIO_CATEGORY_RCT1_LL,
@ -133,7 +133,7 @@ static rct_window_event_list window_scenarioselect_events([](auto& events)
// clang-format on
static void DrawCategoryHeading(
rct_window* w, rct_drawpixelinfo* dpi, int32_t left, int32_t right, int32_t y, rct_string_id stringId);
rct_window* w, rct_drawpixelinfo* dpi, int32_t left, int32_t right, int32_t y, StringId stringId);
static void InitialiseListItems(rct_window* w);
static bool IsScenarioVisible(rct_window* w, const scenario_index_entry* scenario);
static bool IsLockingEnabled(rct_window* w);
@ -455,11 +455,11 @@ static void WindowScenarioselectPaint(rct_window* w, rct_drawpixelinfo* dpi)
auto ft = Formatter();
if (gConfigGeneral.scenario_select_mode == SCENARIO_SELECT_MODE_ORIGIN || _titleEditor)
{
ft.Add<rct_string_id>(ScenarioOriginStringIds[i]);
ft.Add<StringId>(ScenarioOriginStringIds[i]);
}
else
{ // old-style
ft.Add<rct_string_id>(ScenarioCategoryStringIds[i]);
ft.Add<StringId>(ScenarioCategoryStringIds[i]);
}
ScreenCoordsXY stringCoords(widget->midX() + w->windowPos.x, widget->midY() + w->windowPos.y - 3);
@ -501,7 +501,7 @@ static void WindowScenarioselectPaint(rct_window* w, rct_drawpixelinfo* dpi)
+ ScreenCoordsXY{ window_scenarioselect_widgets[WIDX_SCENARIOLIST].right + 4,
window_scenarioselect_widgets[WIDX_TABCONTENT].top + 5 };
auto ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(scenario->name);
DrawTextEllipsised(
dpi, screenPos + ScreenCoordsXY{ 85, 0 }, 170, STR_WINDOW_COLOUR_2_STRINGID, ft, { TextAlignment::CENTRE });
@ -509,22 +509,22 @@ static void WindowScenarioselectPaint(rct_window* w, rct_drawpixelinfo* dpi)
// Scenario details
ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(scenario->details);
screenPos.y += DrawTextWrapped(dpi, screenPos, 170, STR_BLACK_STRING, ft) + 5;
// Scenario objective
ft = Formatter();
ft.Add<rct_string_id>(ObjectiveNames[scenario->objective_type]);
ft.Add<StringId>(ObjectiveNames[scenario->objective_type]);
if (scenario->objective_type == OBJECTIVE_BUILD_THE_BEST)
{
rct_string_id rideTypeString = STR_NONE;
StringId rideTypeString = STR_NONE;
auto rideTypeId = scenario->objective_arg_3;
if (rideTypeId != RIDE_TYPE_NULL && rideTypeId < RIDE_TYPE_COUNT)
{
rideTypeString = GetRideTypeDescriptor(rideTypeId).Naming.Name;
}
ft.Add<rct_string_id>(rideTypeString);
ft.Add<StringId>(rideTypeString);
}
else
{
@ -547,7 +547,7 @@ static void WindowScenarioselectPaint(rct_window* w, rct_drawpixelinfo* dpi)
completedByName = scenario->highscore->name;
}
ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(completedByName);
ft.Add<money64>(scenario->highscore->company_value);
screenPos.y += DrawTextWrapped(dpi, screenPos, 170, STR_COMPLETED_BY_WITH_COMPANY_VALUE, ft);
@ -559,8 +559,8 @@ static void WindowScenarioselectScrollpaint(rct_window* w, rct_drawpixelinfo* dp
uint8_t paletteIndex = ColourMapA[w->colours[1]].mid_light;
gfx_clear(dpi, paletteIndex);
rct_string_id highlighted_format = ScenarioSelectUseSmallFont() ? STR_WHITE_STRING : STR_WINDOW_COLOUR_2_STRINGID;
rct_string_id unhighlighted_format = ScenarioSelectUseSmallFont() ? STR_WHITE_STRING : STR_BLACK_STRING;
StringId highlighted_format = ScenarioSelectUseSmallFont() ? STR_WHITE_STRING : STR_WINDOW_COLOUR_2_STRINGID;
StringId unhighlighted_format = ScenarioSelectUseSmallFont() ? STR_WHITE_STRING : STR_BLACK_STRING;
const auto& listWidget = w->widgets[WIDX_SCENARIOLIST];
int32_t listWidth = listWidget.width() - 12;
@ -604,10 +604,10 @@ static void WindowScenarioselectScrollpaint(rct_window* w, rct_drawpixelinfo* dp
// Draw scenario name
char buffer[64];
safe_strcpy(buffer, scenario->name, sizeof(buffer));
rct_string_id format = isDisabled ? static_cast<rct_string_id>(STR_STRINGID)
: (isHighlighted ? highlighted_format : unhighlighted_format);
StringId format = isDisabled ? static_cast<StringId>(STR_STRINGID)
: (isHighlighted ? highlighted_format : unhighlighted_format);
auto ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<char*>(buffer);
colour_t colour = isDisabled ? w->colours[1] | COLOUR_FLAG_INSET : COLOUR_BLACK;
FontSpriteBase fontSpriteBase = isDisabled ? FontSpriteBase::MEDIUM_DARK : FontSpriteBase::MEDIUM;
@ -631,8 +631,8 @@ static void WindowScenarioselectScrollpaint(rct_window* w, rct_drawpixelinfo* dp
}
safe_strcpy(buffer, completedByName, 64);
ft = Formatter();
ft.Add<rct_string_id>(STR_COMPLETED_BY);
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_COMPLETED_BY);
ft.Add<StringId>(STR_STRING);
ft.Add<char*>(buffer);
DrawTextBasic(
dpi, { scrollCentre, y + scenarioTitleHeight + 1 }, format, ft,
@ -647,7 +647,7 @@ static void WindowScenarioselectScrollpaint(rct_window* w, rct_drawpixelinfo* dp
}
static void DrawCategoryHeading(
rct_window* w, rct_drawpixelinfo* dpi, int32_t left, int32_t right, int32_t y, rct_string_id stringId)
rct_window* w, rct_drawpixelinfo* dpi, int32_t left, int32_t right, int32_t y, StringId stringId)
{
colour_t baseColour = w->colours[1];
colour_t lightColour = ColourMapA[baseColour].lighter;
@ -707,7 +707,7 @@ static void InitialiseListItems(rct_window* w)
continue;
// Category heading
rct_string_id headingStringId = STR_NONE;
StringId headingStringId = STR_NONE;
if (gConfigGeneral.scenario_select_mode == SCENARIO_SELECT_MODE_ORIGIN || _titleEditor)
{
if (w->selected_tab != static_cast<uint8_t>(ScenarioSource::Real) && currentHeading != scenario->category)

View File

@ -27,7 +27,7 @@
#include <openrct2/world/Scenery.h>
#include <openrct2/world/SmallScenery.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_NONE;
static constexpr const StringId WINDOW_TITLE = STR_NONE;
constexpr int32_t WINDOW_SCENERY_MIN_WIDTH = 634;
constexpr int32_t WINDOW_SCENERY_MIN_HEIGHT = 180;
constexpr int32_t SCENERY_BUTTON_WIDTH = 66;
@ -459,7 +459,7 @@ public:
}
}
OpenRCT2String OnTooltip(const rct_widgetindex widgetIndex, const rct_string_id fallback) override
OpenRCT2String OnTooltip(const rct_widgetindex widgetIndex, const StringId fallback) override
{
if (widgetIndex >= WIDX_SCENERY_TAB_1)
{
@ -470,7 +470,7 @@ public:
if (tabInfo.IsMisc())
{
auto ft = Formatter();
ft.Add<rct_string_id>(STR_MISCELLANEOUS);
ft.Add<StringId>(STR_MISCELLANEOUS);
return { fallback, ft };
}
@ -478,7 +478,7 @@ public:
if (sceneryEntry != nullptr)
{
auto ft = Formatter();
ft.Add<rct_string_id>(sceneryEntry->name);
ft.Add<StringId>(sceneryEntry->name);
return { fallback, ft };
}
}
@ -489,7 +489,7 @@ public:
void OnPrepareDraw() override
{
// Set the window title
rct_string_id titleStringId = STR_MISCELLANEOUS;
StringId titleStringId = STR_MISCELLANEOUS;
const auto tabIndex = _activeTabIndex;
if (tabIndex < _tabEntries.size())
{
@ -680,7 +680,7 @@ public:
}
auto ft = Formatter();
ft.Add<rct_string_id>(name);
ft.Add<StringId>(name);
DrawTextEllipsised(&dpi, { windowPos.x + 3, windowPos.y + height - 13 }, width - 19, STR_BLACK_STRING, ft);
}
@ -1107,9 +1107,9 @@ private:
}
}
std::pair<rct_string_id, money32> GetNameAndPrice(ScenerySelection selectedScenery)
std::pair<StringId, money32> GetNameAndPrice(ScenerySelection selectedScenery)
{
rct_string_id name = STR_UNKNOWN_OBJECT_TYPE;
StringId name = STR_UNKNOWN_OBJECT_TYPE;
money32 price = MONEY32_UNDEFINED;
if (selectedScenery.IsUndefined() && gSceneryPlaceCost != MONEY32_UNDEFINED)
{

View File

@ -37,9 +37,9 @@
static char _playerName[32 + 1];
static ServerList _serverList;
static std::future<std::tuple<std::vector<ServerListEntry>, rct_string_id>> _fetchFuture;
static std::future<std::tuple<std::vector<ServerListEntry>, StringId>> _fetchFuture;
static uint32_t _numPlayersOnline = 0;
static rct_string_id _statusText = STR_SERVER_LIST_CONNECTING;
static StringId _statusText = STR_SERVER_LIST_CONNECTING;
enum
{
@ -82,7 +82,7 @@ static void WindowServerListScrollGetsize(rct_window* w, int32_t scrollIndex, in
static void WindowServerListScrollMousedown(rct_window* w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void WindowServerListScrollMouseover(rct_window* w, int32_t scrollIndex, const ScreenCoordsXY& screenCoords);
static void WindowServerListTextinput(rct_window* w, rct_widgetindex widgetIndex, char* text);
static OpenRCT2String WindowServerListTooltip(rct_window* const w, const rct_widgetindex widgetIndex, rct_string_id fallback);
static OpenRCT2String WindowServerListTooltip(rct_window* const w, const rct_widgetindex widgetIndex, StringId fallback);
static void WindowServerListInvalidate(rct_window* w);
static void WindowServerListPaint(rct_window* w, rct_drawpixelinfo* dpi);
static void WindowServerListScrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex);
@ -296,7 +296,7 @@ static void WindowServerListScrollMouseover(rct_window* w, int32_t scrollIndex,
w->selected_list_item = itemIndex;
_showNetworkVersionTooltip = showNetworkVersionTooltip;
listWidget.tooltip = showNetworkVersionTooltip ? static_cast<rct_string_id>(STR_NETWORK_VERSION_TIP) : STR_NONE;
listWidget.tooltip = showNetworkVersionTooltip ? static_cast<StringId>(STR_NETWORK_VERSION_TIP) : STR_NONE;
WindowTooltipClose();
w->Invalidate();
@ -343,7 +343,7 @@ static void WindowServerListTextinput(rct_window* w, rct_widgetindex widgetIndex
}
}
static OpenRCT2String WindowServerListTooltip(rct_window* const w, const rct_widgetindex widgetIndex, rct_string_id fallback)
static OpenRCT2String WindowServerListTooltip(rct_window* const w, const rct_widgetindex widgetIndex, StringId fallback)
{
auto ft = Formatter();
ft.Add<char*>(_version.c_str());

View File

@ -19,7 +19,7 @@
using namespace OpenRCT2;
using namespace OpenRCT2::Ui;
static constexpr const rct_string_id WINDOW_TITLE = STR_SHORTCUTS_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_SHORTCUTS_TITLE;
static constexpr const int32_t WW = 420;
static constexpr const int32_t WH = 280;
@ -47,7 +47,7 @@ static rct_widget window_shortcut_widgets[] = {
};
// clang-format on
static constexpr const rct_string_id CHANGE_WINDOW_TITLE = STR_SHORTCUT_CHANGE_TITLE;
static constexpr const StringId CHANGE_WINDOW_TITLE = STR_SHORTCUT_CHANGE_TITLE;
static constexpr const int32_t CHANGE_WW = 250;
static constexpr const int32_t CHANGE_WH = 80;
@ -68,7 +68,7 @@ class ChangeShortcutWindow final : public Window
{
private:
std::string _shortcutId;
rct_string_id _shortcutLocalisedName{};
StringId _shortcutLocalisedName{};
std::string _shortcutCustomName;
public:
@ -127,11 +127,11 @@ public:
auto ft = Formatter();
if (_shortcutCustomName.empty())
{
ft.Add<rct_string_id>(_shortcutLocalisedName);
ft.Add<StringId>(_shortcutLocalisedName);
}
else
{
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(_shortcutCustomName.c_str());
}
DrawTextWrapped(&dpi, stringCoords, 242, STR_SHORTCUT_CHANGE_PROMPT, ft, { TextAlignment::CENTRE });
@ -159,7 +159,7 @@ private:
struct ShortcutStringPair
{
std::string ShortcutId;
rct_string_id StringId = STR_NONE;
StringId StringId = STR_NONE;
std::string CustomString;
std::string Binding;
};
@ -521,14 +521,14 @@ private:
auto bindingOffset = (scrollWidth * 2) / 3;
auto ft = Formatter();
ft.Add<rct_string_id>(STR_SHORTCUT_ENTRY_FORMAT);
ft.Add<StringId>(STR_SHORTCUT_ENTRY_FORMAT);
if (shortcut.CustomString.empty())
{
ft.Add<rct_string_id>(shortcut.StringId);
ft.Add<StringId>(shortcut.StringId);
}
else
{
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(shortcut.CustomString.c_str());
}
DrawTextEllipsised(&dpi, { 0, y - 1 }, bindingOffset, format, ft);
@ -536,7 +536,7 @@ private:
if (!shortcut.Binding.empty())
{
ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<const char*>(shortcut.Binding.c_str());
DrawTextEllipsised(&dpi, { bindingOffset, y - 1 }, 150, format, ft);
}

View File

@ -25,7 +25,7 @@
#include <openrct2/world/Scenery.h>
#include <openrct2/world/Wall.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_SIGN;
static constexpr const StringId WINDOW_TITLE = STR_SIGN;
static constexpr const int32_t WW = 113;
static constexpr const int32_t WH = 96;

View File

@ -34,7 +34,7 @@
#include <openrct2/world/Footpath.h>
#include <openrct2/world/Park.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_STRINGID;
static constexpr const StringId WINDOW_TITLE = STR_STRINGID;
static constexpr const int32_t WW = 190;
static constexpr const int32_t WH = 180;

View File

@ -18,7 +18,7 @@
#include <openrct2/localisation/Formatter.h>
#include <openrct2/localisation/Localisation.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_SACK_STAFF;
static constexpr const StringId WINDOW_TITLE = STR_SACK_STAFF;
static constexpr const int32_t WW = 200;
static constexpr const int32_t WH = 100;

View File

@ -60,7 +60,7 @@ enum WindowStaffListWidgetIdx
WIDX_STAFF_LIST_MAP,
};
static constexpr const rct_string_id WINDOW_TITLE = STR_STAFF;
static constexpr const StringId WINDOW_TITLE = STR_STAFF;
static constexpr const int32_t WW = 320;
static constexpr const int32_t WH = 270;
constexpr int32_t MAX_WW = 500;
@ -89,9 +89,9 @@ class StaffListWindow final : public Window
private:
struct StaffNamingConvention
{
rct_string_id Plural;
rct_string_id Singular;
rct_string_id ActionHire;
StringId Plural;
StringId Singular;
StringId ActionHire;
};
std::vector<EntityId> _staffList;
@ -300,7 +300,7 @@ public:
auto ft = Formatter();
ft.Add<uint16_t>(_staffList.size());
ft.Add<rct_string_id>(staffTypeStringId);
ft.Add<StringId>(staffTypeStringId);
DrawTextBasic(
&dpi, windowPos + ScreenCoordsXY{ 4, widgets[WIDX_STAFF_LIST_LIST].bottom + 2 }, STR_STAFF_LIST_COUNTER, ft);
@ -460,7 +460,7 @@ public:
else
{
auto ft = Formatter();
ft.Add<rct_string_id>(GetStaffNamingConvention(GetSelectedStaffType()).Plural);
ft.Add<StringId>(GetStaffNamingConvention(GetSelectedStaffType()).Plural);
context_show_error(STR_NO_THING_IN_PARK_YET, STR_NONE, ft);
}
}

View File

@ -44,10 +44,10 @@ private:
widget_identifier _parentWidget{};
std::string _title;
rct_string_id _titleStringId = STR_NONE;
StringId _titleStringId = STR_NONE;
std::string _description;
rct_string_id _descriptionStringId = STR_NONE;
StringId _descriptionStringId = STR_NONE;
Formatter _descriptionArgs;
std::function<void(std::string_view)> _callback;
@ -90,7 +90,7 @@ public:
}
}
void SetTitle(rct_string_id title, rct_string_id description, const Formatter& decriptionArgs)
void SetTitle(StringId title, StringId description, const Formatter& decriptionArgs)
{
_titleStringId = title;
_descriptionStringId = description;
@ -371,8 +371,8 @@ private:
};
void WindowTextInputRawOpen(
rct_window* call_w, rct_widgetindex call_widget, rct_string_id title, rct_string_id description,
const Formatter& descriptionArgs, const_utf8string existing_text, int32_t maxLength)
rct_window* call_w, rct_widgetindex call_widget, StringId title, StringId description, const Formatter& descriptionArgs,
const_utf8string existing_text, int32_t maxLength)
{
window_close_by_class(WC_TEXTINPUT);
@ -401,8 +401,8 @@ void WindowTextInputOpen(
}
void WindowTextInputOpen(
rct_window* call_w, rct_widgetindex call_widget, rct_string_id title, rct_string_id description,
const Formatter& descriptionArgs, rct_string_id existing_text, uintptr_t existing_args, int32_t maxLength)
rct_window* call_w, rct_widgetindex call_widget, StringId title, StringId description, const Formatter& descriptionArgs,
StringId existing_text, uintptr_t existing_args, int32_t maxLength)
{
auto existingText = format_string(existing_text, &existing_args);
WindowTextInputRawOpen(call_w, call_widget, title, description, descriptionArgs, existingText.c_str(), maxLength);

View File

@ -95,7 +95,7 @@ enum WindowThemesWidgetIdx
WIDX_THEMES_RCT1_BOTTOM_TOOLBAR
};
static constexpr const rct_string_id WINDOW_TITLE = STR_THEMES_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_THEMES_TITLE;
static constexpr const int32_t WW = 320;
static constexpr const int32_t WH = 107;

View File

@ -38,19 +38,19 @@
#include <openrct2/world/Surface.h>
#include <openrct2/world/TileInspector.h>
static constexpr const rct_string_id EntranceTypeStringIds[] = {
static constexpr const StringId EntranceTypeStringIds[] = {
STR_TILE_INSPECTOR_ENTRANCE_TYPE_RIDE_ENTRANCE,
STR_TILE_INSPECTOR_ENTRANCE_TYPE_RIDE_EXIT,
STR_TILE_INSPECTOR_ENTRANCE_TYPE_PARK_ENTRANC,
};
static constexpr const rct_string_id ParkEntrancePartStringIds[] = {
static constexpr const StringId ParkEntrancePartStringIds[] = {
STR_TILE_INSPECTOR_ENTRANCE_MIDDLE,
STR_TILE_INSPECTOR_ENTRANCE_LEFT,
STR_TILE_INSPECTOR_ENTRANCE_RIGHT,
};
static constexpr const rct_string_id WallSlopeStringIds[] = {
static constexpr const StringId WallSlopeStringIds[] = {
STR_TILE_INSPECTOR_WALL_FLAT,
STR_TILE_INSPECTOR_WALL_SLOPED_LEFT,
STR_TILE_INSPECTOR_WALL_SLOPED_RIGHT,
@ -179,7 +179,7 @@ static_assert(WC_TILE_INSPECTOR__WIDX_SPINNER_X_DECREASE == WIDX_SPINNER_X_DECRE
static_assert(WC_TILE_INSPECTOR__WIDX_SPINNER_Y_INCREASE == WIDX_SPINNER_Y_INCREASE);
static_assert(WC_TILE_INSPECTOR__WIDX_SPINNER_Y_DECREASE == WIDX_SPINNER_Y_DECREASE);
static constexpr const rct_string_id WINDOW_TITLE = STR_TILE_INSPECTOR_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_TILE_INSPECTOR_TITLE;
// Window sizes
static constexpr const int32_t WW = 400;
@ -404,11 +404,11 @@ struct TileInspectorGroupboxSettings
int16_t details_top_offset, details_bottom_offset;
int16_t properties_top_offset, properties_bottom_offset;
// String to be displayed in the details groupbox
rct_string_id string_id;
StringId string_id;
};
static constexpr TileInspectorGroupboxSettings MakeGroupboxSettings(
int16_t detailsHeight, int16_t propertiesHeight, rct_string_id stringId)
int16_t detailsHeight, int16_t propertiesHeight, StringId stringId)
{
TileInspectorGroupboxSettings settings{};
decltype(settings.properties_bottom_offset) offsetSum = 0;
@ -1762,30 +1762,30 @@ static void WindowTileInspectorPaint(rct_window* w, rct_drawpixelinfo* dpi)
{
// Details
// Terrain texture name
rct_string_id terrainNameId = STR_EMPTY;
StringId terrainNameId = STR_EMPTY;
auto surfaceStyle = tileElement->AsSurface()->GetSurfaceStyleObject();
if (surfaceStyle != nullptr)
{
terrainNameId = surfaceStyle->NameStringId;
}
auto ft = Formatter();
ft.Add<rct_string_id>(terrainNameId);
ft.Add<StringId>(terrainNameId);
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_SURFACE_TERAIN, ft, { w->colours[1] });
// Edge texture name
rct_string_id terrainEdgeNameId = STR_EMPTY;
StringId terrainEdgeNameId = STR_EMPTY;
auto edgeStyle = tileElement->AsSurface()->GetEdgeStyleObject();
if (edgeStyle != nullptr)
{
terrainEdgeNameId = edgeStyle->NameStringId;
}
ft = Formatter();
ft.Add<rct_string_id>(terrainEdgeNameId);
ft.Add<StringId>(terrainEdgeNameId);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_SURFACE_EDGE, ft, { w->colours[1] });
// Land ownership
rct_string_id landOwnership;
StringId landOwnership;
if (tileElement->AsSurface()->GetOwnership() & OWNERSHIP_OWNED)
landOwnership = STR_LAND_OWNED;
else if (tileElement->AsSurface()->GetOwnership() & OWNERSHIP_AVAILABLE)
@ -1797,7 +1797,7 @@ static void WindowTileInspectorPaint(rct_window* w, rct_drawpixelinfo* dpi)
else
landOwnership = STR_TILE_INSPECTOR_LAND_NOT_OWNED_AND_NOT_AVAILABLE;
ft = Formatter();
ft.Add<rct_string_id>(landOwnership);
ft.Add<StringId>(landOwnership);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_SURFACE_OWNERSHIP, ft, { w->colours[1] });
@ -1838,7 +1838,7 @@ static void WindowTileInspectorPaint(rct_window* w, rct_drawpixelinfo* dpi)
if (surfaceObj != nullptr)
{
auto ft = Formatter();
ft.Add<rct_string_id>(surfaceObj->NameStringId);
ft.Add<StringId>(surfaceObj->NameStringId);
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_FOOTPATH_SURFACE_NAME, ft, { COLOUR_WHITE });
}
@ -1847,7 +1847,7 @@ static void WindowTileInspectorPaint(rct_window* w, rct_drawpixelinfo* dpi)
if (railingsObj != nullptr)
{
auto ft = Formatter();
ft.Add<rct_string_id>(railingsObj->NameStringId);
ft.Add<StringId>(railingsObj->NameStringId);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_FOOTPATH_RAILINGS_NAME, ft,
{ COLOUR_WHITE });
@ -1858,7 +1858,7 @@ static void WindowTileInspectorPaint(rct_window* w, rct_drawpixelinfo* dpi)
// Legacy path name
auto footpathEntry = reinterpret_cast<const rct_footpath_entry*>(footpathObj->GetLegacyData());
auto ft = Formatter();
ft.Add<rct_string_id>(footpathEntry->string_idx);
ft.Add<StringId>(footpathEntry->string_idx);
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_PATH_NAME, ft, { COLOUR_WHITE });
}
@ -1867,11 +1867,10 @@ static void WindowTileInspectorPaint(rct_window* w, rct_drawpixelinfo* dpi)
{
const auto pathAdditionType = tileElement->AsPath()->GetAdditionEntryIndex();
const auto* pathBitEntry = get_footpath_item_entry(pathAdditionType);
rct_string_id additionNameId = pathBitEntry != nullptr
? pathBitEntry->name
: static_cast<rct_string_id>(STR_UNKNOWN_OBJECT_TYPE);
StringId additionNameId = pathBitEntry != nullptr ? pathBitEntry->name
: static_cast<StringId>(STR_UNKNOWN_OBJECT_TYPE);
auto ft = Formatter();
ft.Add<rct_string_id>(additionNameId);
ft.Add<StringId>(additionNameId);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 2 * 11 }, STR_TILE_INSPECTOR_PATH_ADDITIONS, ft,
{ COLOUR_WHITE });
@ -1925,7 +1924,7 @@ static void WindowTileInspectorPaint(rct_window* w, rct_drawpixelinfo* dpi)
// Ride type. Individual pieces may be of a different ride type from the ride it belongs to.
const auto& rtd = GetRideTypeDescriptor(trackElement->GetRideType());
ft = Formatter();
ft.Add<rct_string_id>(rtd.Naming.Name);
ft.Add<StringId>(rtd.Naming.Name);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_TRACK_RIDE_TYPE, ft, { w->colours[1] });
@ -1943,7 +1942,7 @@ static void WindowTileInspectorPaint(rct_window* w, rct_drawpixelinfo* dpi)
{
auto stationIndex = trackElement->GetStationIndex();
ft = Formatter();
ft.Add<rct_string_id>(STR_COMMA16);
ft.Add<StringId>(STR_COMMA16);
ft.Add<int16_t>(stationIndex.ToUnderlying());
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 55 }, STR_TILE_INSPECTOR_STATION_INDEX, ft, { w->colours[1] });
@ -1952,14 +1951,14 @@ static void WindowTileInspectorPaint(rct_window* w, rct_drawpixelinfo* dpi)
{
const char* stationNone = "-";
ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<char*>(stationNone);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 55 }, STR_TILE_INSPECTOR_STATION_INDEX, ft, { w->colours[1] });
}
ft = Formatter();
ft.Add<rct_string_id>(ColourSchemeNames[trackElement->GetColourScheme()]);
ft.Add<StringId>(ColourSchemeNames[trackElement->GetColourScheme()]);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 66 }, STR_TILE_INSPECTOR_COLOUR_SCHEME, ft, { w->colours[1] });
@ -1989,14 +1988,14 @@ static void WindowTileInspectorPaint(rct_window* w, rct_drawpixelinfo* dpi)
if (sceneryEntry != nullptr && !(sceneryEntry->HasFlag(SMALL_SCENERY_FLAG_FULL_TILE)))
{
int16_t quadrant = tileElement->AsSmallScenery()->GetSceneryQuadrant();
static constexpr rct_string_id _quadrantStringIdx[] = {
static constexpr StringId _quadrantStringIdx[] = {
STR_TILE_INSPECTOR_SCENERY_QUADRANT_SW,
STR_TILE_INSPECTOR_SCENERY_QUADRANT_NW,
STR_TILE_INSPECTOR_SCENERY_QUADRANT_NE,
STR_TILE_INSPECTOR_SCENERY_QUADRANT_SE,
};
ft = Formatter();
ft.Add<rct_string_id>(_quadrantStringIdx[quadrant]);
ft.Add<StringId>(_quadrantStringIdx[quadrant]);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_SCENERY_QUADRANT, ft,
{ w->colours[1] });
@ -2036,14 +2035,14 @@ static void WindowTileInspectorPaint(rct_window* w, rct_drawpixelinfo* dpi)
// Details
// Entrance type
auto ft = Formatter();
ft.Add<rct_string_id>(EntranceTypeStringIds[tileElement->AsEntrance()->GetEntranceType()]);
ft.Add<StringId>(EntranceTypeStringIds[tileElement->AsEntrance()->GetEntranceType()]);
DrawTextBasic(dpi, screenCoords, STR_TILE_INSPECTOR_ENTRANCE_TYPE, ft, { w->colours[1] });
if (tileElement->AsEntrance()->GetEntranceType() == ENTRANCE_TYPE_PARK_ENTRANCE)
{
// TODO: Make this work with Left/Right park entrance parts
ft = Formatter();
ft.Add<rct_string_id>(park_entrance_get_index({ windowTileInspectorToolMap, tileElement->GetBaseZ() }));
ft.Add<StringId>(park_entrance_get_index({ windowTileInspectorToolMap, tileElement->GetBaseZ() }));
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 11 }, STR_TILE_INSPECTOR_ENTRANCE_ENTRANCE_ID, ft,
{ w->colours[1] });
@ -2072,7 +2071,7 @@ static void WindowTileInspectorPaint(rct_window* w, rct_drawpixelinfo* dpi)
{
// Entrance part
ft = Formatter();
ft.Add<rct_string_id>(ParkEntrancePartStringIds[tileElement->AsEntrance()->GetSequenceIndex()]);
ft.Add<StringId>(ParkEntrancePartStringIds[tileElement->AsEntrance()->GetSequenceIndex()]);
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 22 }, STR_TILE_INSPECTOR_ENTRANCE_PART, ft, { w->colours[1] });
}
@ -2087,7 +2086,7 @@ static void WindowTileInspectorPaint(rct_window* w, rct_drawpixelinfo* dpi)
// Station index
auto stationIndex = tileElement->AsEntrance()->GetStationIndex();
ft = Formatter();
ft.Add<rct_string_id>(STR_COMMA16);
ft.Add<StringId>(STR_COMMA16);
ft.Add<int16_t>(stationIndex.ToUnderlying());
DrawTextBasic(
dpi, screenCoords + ScreenCoordsXY{ 0, 33 }, STR_TILE_INSPECTOR_STATION_INDEX, ft, { w->colours[1] });
@ -2303,9 +2302,9 @@ static void WindowTileInspectorScrollpaint(rct_window* w, rct_drawpixelinfo* dpi
gfx_fill_rect(dpi, fillRectangle, ColourMapA[w->colours[1]].light | 0x1000000);
}
const rct_string_id stringFormat = (selectedRow || hoveredRow) ? STR_WHITE_STRING : STR_WINDOW_COLOUR_2_STRINGID;
const StringId stringFormat = (selectedRow || hoveredRow) ? STR_WHITE_STRING : STR_WINDOW_COLOUR_2_STRINGID;
auto checkboxFormatter = Formatter();
checkboxFormatter.Add<rct_string_id>(STR_STRING);
checkboxFormatter.Add<StringId>(STR_STRING);
checkboxFormatter.Add<char*>(CheckBoxMarkString);
// Draw checkbox and check if visible
@ -2313,7 +2312,7 @@ static void WindowTileInspectorScrollpaint(rct_window* w, rct_drawpixelinfo* dpi
if (!tileElement->IsInvisible())
{
auto eyeFormatter = Formatter();
eyeFormatter.Add<rct_string_id>(STR_STRING);
eyeFormatter.Add<StringId>(STR_STRING);
eyeFormatter.Add<char*>(EyeString);
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ 2, 1 }, stringFormat, eyeFormatter);
}
@ -2372,25 +2371,25 @@ static void WindowTileInspectorScrollpaint(rct_window* w, rct_drawpixelinfo* dpi
// Element name
auto ft = Formatter();
ft.Add<rct_string_id>(STR_STRING);
ft.Add<StringId>(STR_STRING);
ft.Add<char*>(typeName);
DrawTextEllipsised(dpi, screenCoords + ScreenCoordsXY{ TypeColumnXY.x, 0 }, TypeColumnSize.width, stringFormat, ft);
// Base height
ft = Formatter();
ft.Add<rct_string_id>(STR_FORMAT_INTEGER);
ft.Add<StringId>(STR_FORMAT_INTEGER);
ft.Add<int32_t>(tileElement->base_height);
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ BaseHeightColumnXY.x, 0 }, stringFormat, ft);
// Clearance height
ft = Formatter();
ft.Add<rct_string_id>(STR_FORMAT_INTEGER);
ft.Add<StringId>(STR_FORMAT_INTEGER);
ft.Add<int32_t>(clearanceHeight);
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ ClearanceHeightColumnXY.x, 0 }, stringFormat, ft);
// Direction
ft = Formatter();
ft.Add<rct_string_id>(STR_FORMAT_INTEGER);
ft.Add<StringId>(STR_FORMAT_INTEGER);
ft.Add<int32_t>(tileElement->GetDirection());
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ DirectionColumnXY.x, 0 }, stringFormat, ft);

View File

@ -1898,7 +1898,7 @@ static void WindowTopToolbarSceneryToolDown(const ScreenCoordsXY& windowPos, rct
break;
}
if (const auto* message = std::get_if<rct_string_id>(&res.ErrorMessage))
if (const auto* message = std::get_if<StringId>(&res.ErrorMessage))
{
if (*message == STR_NOT_ENOUGH_CASH_REQUIRES || *message == STR_CAN_ONLY_BUILD_THIS_ON_WATER)
{
@ -1952,7 +1952,7 @@ static void WindowTopToolbarSceneryToolDown(const ScreenCoordsXY& windowPos, rct
break;
}
if (const auto* message = std::get_if<rct_string_id>(&res.ErrorMessage))
if (const auto* message = std::get_if<StringId>(&res.ErrorMessage))
{
if (*message == STR_NOT_ENOUGH_CASH_REQUIRES || *message == STR_CAN_ONLY_BUILD_THIS_ON_WATER)
{

View File

@ -17,7 +17,7 @@
#include <openrct2/platform/Platform.h>
#include <openrct2/ride/TrackDesignRepository.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_STRING;
static constexpr const StringId WINDOW_TITLE = STR_STRING;
static constexpr const int32_t WH = 44;
static constexpr const int32_t WW = 250;
static constexpr const int32_t WH_DELETE_PROMPT = 74;

View File

@ -36,7 +36,7 @@
using namespace OpenRCT2;
using namespace OpenRCT2::TrackMetaData;
static constexpr const rct_string_id WINDOW_TITLE = STR_STRING;
static constexpr const StringId WINDOW_TITLE = STR_STRING;
static constexpr const int32_t WH = 124;
static constexpr const int32_t WW = 200;
constexpr int16_t TRACK_MINI_PREVIEW_WIDTH = 168;

View File

@ -27,7 +27,7 @@
#include <openrct2/windows/Intent.h>
#include <vector>
static constexpr const rct_string_id WINDOW_TITLE = STR_SELECT_DESIGN;
static constexpr const StringId WINDOW_TITLE = STR_SELECT_DESIGN;
static constexpr const int32_t WH = 441;
static constexpr const int32_t WW = 600;
static constexpr const int32_t DEBUG_PATH_HEIGHT = 12;
@ -361,7 +361,7 @@ public:
void OnPrepareDraw() override
{
rct_string_id stringId = STR_NONE;
StringId stringId = STR_NONE;
rct_ride_entry* entry = get_ride_entry(_window_track_list_item.EntryIndex);
if (entry != nullptr)
@ -370,7 +370,7 @@ public:
stringId = rideName.Name;
}
Formatter::Common().Add<rct_string_id>(stringId);
Formatter::Common().Add<StringId>(stringId);
if (gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER)
{
window_track_list_widgets[WIDX_TITLE].text = STR_TRACK_DESIGNS;
@ -580,7 +580,7 @@ public:
// Ride length
ft = Formatter();
ft.Add<rct_string_id>(STR_RIDE_LENGTH_ENTRY);
ft.Add<StringId>(STR_RIDE_LENGTH_ENTRY);
ft.Add<uint16_t>(_loadedTrackDesign->ride_length);
DrawTextEllipsised(&dpi, screenPos, 214, STR_TRACK_LIST_RIDE_LENGTH, ft);
screenPos.y += LIST_ROW_HEIGHT;
@ -683,7 +683,7 @@ public:
else
{
// Build custom track item
rct_string_id stringId;
StringId stringId;
if (listIndex == static_cast<size_t>(selected_list_item))
{
// Highlight
@ -698,7 +698,7 @@ public:
}
auto ft = Formatter();
ft.Add<rct_string_id>(STR_BUILD_CUSTOM_DESIGN);
ft.Add<StringId>(STR_BUILD_CUSTOM_DESIGN);
DrawTextBasic(&dpi, screenCoords - ScreenCoordsXY{ 0, 1 }, stringId, ft);
screenCoords.y += SCROLLABLE_ROW_HEIGHT;
listIndex++;
@ -708,7 +708,7 @@ public:
{
if (screenCoords.y + SCROLLABLE_ROW_HEIGHT >= dpi.y && screenCoords.y < dpi.y + dpi.height)
{
rct_string_id stringId;
StringId stringId;
if (listIndex == static_cast<size_t>(selected_list_item))
{
// Highlight
@ -724,7 +724,7 @@ public:
// Draw track name
auto ft = Formatter();
ft.Add<rct_string_id>(STR_TRACK_LIST_NAME_FORMAT);
ft.Add<StringId>(STR_TRACK_LIST_NAME_FORMAT);
ft.Add<const utf8*>(_trackDesigns[i].name.c_str());
DrawTextBasic(&dpi, screenCoords - ScreenCoordsXY{ 0, 1 }, stringId, ft);
}

View File

@ -54,7 +54,7 @@ enum WINDOW_TRANSPARENCY_WIDGET_IDX
#pragma region MEASUREMENTS
static constexpr const rct_string_id WINDOW_TITLE = STR_TRANSPARENCY_OPTIONS_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_TRANSPARENCY_OPTIONS_TITLE;
static constexpr const int32_t WW = 204;
static constexpr const int32_t WH = 57;

View File

@ -44,7 +44,7 @@ enum class DisplayType {
#pragma region Widgets
static constexpr const rct_string_id WINDOW_TITLE = STR_VIEW_CLIPPING_TITLE;
static constexpr const StringId WINDOW_TITLE = STR_VIEW_CLIPPING_TITLE;
static constexpr const int32_t WW = 180;
static constexpr const int32_t WH = 155;

View File

@ -32,7 +32,7 @@ enum WindowViewportWidgetIdx
#pragma region MEASUREMENTS
static constexpr const rct_string_id WINDOW_TITLE = STR_VIEWPORT_NO;
static constexpr const StringId WINDOW_TITLE = STR_VIEWPORT_NO;
static constexpr const int32_t WW = 200;
static constexpr const int32_t WH = 200;

View File

@ -17,7 +17,7 @@
#include <openrct2/localisation/Localisation.h>
#include <openrct2/world/Park.h>
static constexpr const rct_string_id WINDOW_TITLE = STR_WATER;
static constexpr const StringId WINDOW_TITLE = STR_WATER;
static constexpr const int32_t WH = 77;
static constexpr const int32_t WW = 76;

View File

@ -102,7 +102,7 @@ rct_window* WindowStaffFirePromptOpen(Peep* peep);
rct_window* WindowScenarioselectOpen(scenarioselect_callback callback, bool titleEditor);
rct_window* WindowScenarioselectOpen(std::function<void(std::string_view)> callback, bool titleEditor, bool disableLocking);
rct_window* WindowErrorOpen(rct_string_id title, rct_string_id message, const class Formatter& formatter);
rct_window* WindowErrorOpen(StringId title, StringId message, const class Formatter& formatter);
rct_window* WindowErrorOpen(std::string_view title, std::string_view message);
struct TrackDesign;
rct_window* WindowLoadsaveOpen(
@ -151,11 +151,11 @@ void WindowNetworkStatusClose();
void WindowTextInputKey(rct_window* w, char keychar);
void WindowTextInputOpen(
rct_window* call_w, rct_widgetindex call_widget, rct_string_id title, rct_string_id description,
const Formatter& descriptionArgs, rct_string_id existing_text, uintptr_t existing_args, int32_t maxLength);
rct_window* call_w, rct_widgetindex call_widget, StringId title, StringId description, const Formatter& descriptionArgs,
StringId existing_text, uintptr_t existing_args, int32_t maxLength);
void WindowTextInputRawOpen(
rct_window* call_w, rct_widgetindex call_widget, rct_string_id title, rct_string_id description,
const Formatter& descriptionArgs, const_utf8string existing_text, int32_t maxLength);
rct_window* call_w, rct_widgetindex call_widget, StringId title, StringId description, const Formatter& descriptionArgs,
const_utf8string existing_text, int32_t maxLength);
void WindowTextInputOpen(
std::string_view title, std::string_view description, std::string_view initialValue, size_t maxLength,

View File

@ -1478,7 +1478,7 @@ void context_force_close_window_by_class(rct_windowclass windowClass)
windowManager->ForceClose(windowClass);
}
rct_window* context_show_error(rct_string_id title, rct_string_id message, const Formatter& args)
rct_window* context_show_error(StringId title, StringId message, const Formatter& args)
{
auto windowManager = GetContext()->GetUiContext()->GetWindowManager();
return windowManager->ShowError(title, message, args);

View File

@ -211,7 +211,7 @@ void context_set_cursor_trap(bool value);
rct_window* context_open_window(rct_windowclass wc);
rct_window* context_open_detail_window(uint8_t type, int32_t id);
rct_window* context_open_window_view(uint8_t view);
rct_window* context_show_error(rct_string_id title, rct_string_id message, const class Formatter& args);
rct_window* context_show_error(StringId title, StringId message, const class Formatter& args);
rct_window* context_open_intent(Intent* intent);
void context_broadcast_intent(Intent* intent);
void context_force_close_window_by_class(rct_windowclass wc);

View File

@ -469,7 +469,7 @@ namespace Editor
*
* rct2: 0x006AB9B8
*/
std::pair<ObjectType, rct_string_id> CheckObjectSelection()
std::pair<ObjectType, StringId> CheckObjectSelection()
{
bool isTrackDesignerManager = gScreenFlags & (SCREEN_FLAGS_TRACK_DESIGNER | SCREEN_FLAGS_TRACK_MANAGER);

View File

@ -23,7 +23,7 @@ namespace Editor
bool LoadLandscape(const utf8* path);
ResultWithMessage CheckPark();
std::pair<ObjectType, rct_string_id> CheckObjectSelection();
std::pair<ObjectType, StringId> CheckObjectSelection();
void OpenWindowsForCurrentStep();

View File

@ -33,7 +33,7 @@
#include <iterator>
#include <vector>
std::optional<rct_string_id> _gSceneryGroupPartialSelectError;
std::optional<StringId> _gSceneryGroupPartialSelectError;
std::vector<uint8_t> _objectSelectionFlags;
int32_t _numSelectedObjectsForType[EnumValue(ObjectType::Count)];
static int32_t _numAvailableObjectsForType[EnumValue(ObjectType::Count)];
@ -50,7 +50,7 @@ static void ReplaceSelectedWaterPalette(const ObjectRepositoryItem* item);
* optional / required dependants of an
* object.
*/
static constexpr ResultWithMessage ObjectSelectionError(bool isMasterObject, rct_string_id message)
static constexpr ResultWithMessage ObjectSelectionError(bool isMasterObject, StringId message)
{
if (!isMasterObject)
reset_selected_object_count_and_size();

View File

@ -25,7 +25,7 @@ enum EDITOR_INPUT_FLAGS
INPUT_FLAG_EDITOR_OBJECT_ALWAYS_REQUIRED = (1 << 3)
};
extern std::optional<rct_string_id> _gSceneryGroupPartialSelectError;
extern std::optional<StringId> _gSceneryGroupPartialSelectError;
extern std::vector<uint8_t> _objectSelectionFlags;
extern int32_t _numSelectedObjectsForType[EnumValue(ObjectType::Count)];

View File

@ -67,7 +67,7 @@ GameActions::Result ClearAction::QueryExecute(bool executing) const
auto noValidTiles = true;
auto error = GameActions::Status::Ok;
rct_string_id errorMessage = STR_NONE;
StringId errorMessage = STR_NONE;
money32 totalCost = 0;
auto validRange = ClampRangeWithinMap(_range);

View File

@ -4,7 +4,7 @@
namespace GameActions
{
Result::Result(GameActions::Status error, rct_string_id title, rct_string_id message, uint8_t* args /*= nullptr*/)
Result::Result(GameActions::Status error, StringId title, StringId message, uint8_t* args /*= nullptr*/)
: Error(error)
, ErrorTitle(title)
, ErrorMessage(message)
@ -23,7 +23,7 @@ namespace GameActions
{
return str;
}
std::string operator()(const rct_string_id strId) const
std::string operator()(const StringId strId) const
{
return format_string(strId, ErrorMessageArgs);
}

View File

@ -61,7 +61,7 @@ namespace GameActions
class Result final
{
public:
using StringVariant = std::variant<std::string, rct_string_id>;
using StringVariant = std::variant<std::string, StringId>;
GameActions::Status Error = GameActions::Status::Ok;
StringVariant ErrorTitle = STR_NONE;
@ -81,7 +81,7 @@ namespace GameActions
#endif
Result() = default;
Result(GameActions::Status error, rct_string_id title, rct_string_id message, uint8_t* args = nullptr);
Result(GameActions::Status error, StringId title, StringId message, uint8_t* args = nullptr);
std::string GetErrorTitle() const;
std::string GetErrorMessage() const;

View File

@ -24,7 +24,7 @@ private:
MapRange _range;
LandBuyRightSetting _setting{ LandBuyRightSetting::Count };
constexpr static rct_string_id _ErrorTitles[] = {
constexpr static StringId _ErrorTitles[] = {
STR_CANT_BUY_LAND,
STR_CANT_BUY_CONSTRUCTION_RIGHTS_HERE,
};

View File

@ -52,7 +52,7 @@ GameActions::Result LandSetHeightAction::Query() const
return GameActions::Result(GameActions::Status::Disallowed, STR_FORBIDDEN_BY_THE_LOCAL_AUTHORITY, STR_NONE);
}
rct_string_id errorTitle = CheckParameters();
StringId errorTitle = CheckParameters();
if (errorTitle != STR_NONE)
{
return GameActions::Result(GameActions::Status::Disallowed, errorTitle, STR_NONE);
@ -168,7 +168,7 @@ GameActions::Result LandSetHeightAction::Execute() const
return res;
}
rct_string_id LandSetHeightAction::CheckParameters() const
StringId LandSetHeightAction::CheckParameters() const
{
if (!LocationValid(_coords))
{
@ -261,7 +261,7 @@ void LandSetHeightAction::SmallSceneryRemoval() const
} while (!(tileElement++)->IsLastForTile());
}
rct_string_id LandSetHeightAction::CheckRideSupports() const
StringId LandSetHeightAction::CheckRideSupports() const
{
for (auto* trackElement : TileElementsView<TrackElement>(_coords))
{

View File

@ -29,11 +29,11 @@ public:
GameActions::Result Execute() const override;
private:
rct_string_id CheckParameters() const;
StringId CheckParameters() const;
TileElement* CheckTreeObstructions() const;
money32 GetSmallSceneryRemovalCost() const;
void SmallSceneryRemoval() const;
rct_string_id CheckRideSupports() const;
StringId CheckRideSupports() const;
TileElement* CheckFloatingStructures(TileElement* surfaceElement, uint8_t zCorner) const;
money32 GetSurfaceHeightChangeCost(SurfaceElement* surfaceElement) const;
void SetSurfaceHeight(TileElement* surfaceElement) const;

View File

@ -608,8 +608,7 @@ GameActions::Result LandSmoothAction::SmoothLand(bool isExecuting) const
}
default:
log_error("Invalid map selection %u", _selectionType);
return GameActions::Result(
GameActions::Status::InvalidParameters, std::get<rct_string_id>(res.ErrorTitle), STR_NONE);
return GameActions::Result(GameActions::Status::InvalidParameters, std::get<StringId>(res.ErrorTitle), STR_NONE);
} // switch selectionType
// Raise / lower the land tool selection area

View File

@ -19,7 +19,7 @@ private:
uint8_t _selectionType{};
bool _isLowering{};
constexpr static rct_string_id _ErrorTitles[] = {
constexpr static StringId _ErrorTitles[] = {
STR_CANT_LOWER_LAND_HERE,
STR_CANT_RAISE_LAND_HERE,
};

View File

@ -25,7 +25,7 @@ private:
ParkParameter _parameter{ ParkParameter::Count };
uint64_t _value{};
constexpr static rct_string_id _ErrorTitles[] = {
constexpr static StringId _ErrorTitles[] = {
STR_CANT_CLOSE_PARK,
STR_CANT_OPEN_PARK,
STR_NONE,

View File

@ -15,5 +15,5 @@
struct ResultWithMessage
{
bool Successful{};
rct_string_id Message = STR_NONE;
StringId Message = STR_NONE;
};

View File

@ -273,7 +273,7 @@ bool RideSetSettingAction::ride_is_valid_operation_option(Ride* ride) const
return _value >= minValue && _value <= maxValue;
}
rct_string_id RideSetSettingAction::GetOperationErrorMessage(Ride* ride) const
StringId RideSetSettingAction::GetOperationErrorMessage(Ride* ride) const
{
switch (ride->mode)
{

View File

@ -50,5 +50,5 @@ private:
bool ride_is_valid_lift_hill_speed(Ride* ride) const;
bool ride_is_valid_num_circuits() const;
bool ride_is_valid_operation_option(Ride* ride) const;
rct_string_id GetOperationErrorMessage(Ride* ride) const;
StringId GetOperationErrorMessage(Ride* ride) const;
};

View File

@ -22,7 +22,7 @@
#include "../ui/WindowManager.h"
#include "../world/Park.h"
static rct_string_id _StatusErrorTitles[] = {
static StringId _StatusErrorTitles[] = {
STR_CANT_CLOSE,
STR_CANT_OPEN,
STR_CANT_TEST,

View File

@ -25,7 +25,7 @@
#include "../util/Util.h"
#include "../world/Park.h"
constexpr static rct_string_id SetVehicleTypeErrorTitle[] = {
constexpr static StringId SetVehicleTypeErrorTitle[] = {
STR_RIDE_SET_VEHICLE_SET_NUM_TRAINS_FAIL,
STR_RIDE_SET_VEHICLE_SET_NUM_CARS_PER_TRAIN_FAIL,
STR_RIDE_SET_VEHICLE_TYPE_FAIL,

View File

@ -45,7 +45,7 @@ GameActions::Result WaterSetHeightAction::Query() const
return GameActions::Result(GameActions::Status::Disallowed, STR_NONE, STR_FORBIDDEN_BY_THE_LOCAL_AUTHORITY);
}
rct_string_id errorMsg = CheckParameters();
StringId errorMsg = CheckParameters();
if (errorMsg != STR_NONE)
{
return GameActions::Result(GameActions::Status::InvalidParameters, STR_NONE, errorMsg);
@ -131,7 +131,7 @@ GameActions::Result WaterSetHeightAction::Execute() const
return res;
}
rct_string_id WaterSetHeightAction::CheckParameters() const
StringId WaterSetHeightAction::CheckParameters() const
{
auto mapSizeMax = GetMapSizeMaxXY();
if (_coords.x > mapSizeMax.x || _coords.y > mapSizeMax.y)

View File

@ -28,5 +28,5 @@ public:
GameActions::Result Execute() const override;
private:
rct_string_id CheckParameters() const;
StringId CheckParameters() const;
};

View File

@ -133,7 +133,7 @@ constexpr money16 ToMoney16(money64 value)
}
using EMPTY_ARGS_VOID_POINTER = void();
using rct_string_id = uint16_t;
using StringId = uint16_t;
#define SafeFree(x) \
do \

View File

@ -270,7 +270,7 @@ int32_t gfx_wrap_string(utf8* text, int32_t width, FontSpriteBase fontSpriteBase
* Draws text that is left aligned and vertically centred.
*/
void gfx_draw_string_left_centred(
rct_drawpixelinfo* dpi, rct_string_id format, void* args, colour_t colour, const ScreenCoordsXY& coords)
rct_drawpixelinfo* dpi, StringId format, void* args, colour_t colour, const ScreenCoordsXY& coords)
{
char* buffer = gCommonStringFormatBuffer;
format_string(buffer, 256, format, args);
@ -429,7 +429,7 @@ int32_t string_get_height_raw(std::string_view text, FontSpriteBase fontBase)
* ticks : ebp >> 16
*/
void DrawNewsTicker(
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t width, colour_t colour, rct_string_id format, void* args,
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t width, colour_t colour, StringId format, void* args,
int32_t ticks)
{
int32_t numLines, lineHeight, lineY;

View File

@ -551,11 +551,11 @@ void gfx_draw_string_no_formatting(
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, const_utf8string buffer, TextPaint textPaint);
void gfx_draw_string_left_centred(
rct_drawpixelinfo* dpi, rct_string_id format, void* args, colour_t colour, const ScreenCoordsXY& coords);
rct_drawpixelinfo* dpi, StringId format, void* args, colour_t colour, const ScreenCoordsXY& coords);
void draw_string_centred_raw(
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t numLines, char* text, FontSpriteBase fontSpriteBase);
void DrawNewsTicker(
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t width, colour_t colour, rct_string_id format, void* args,
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t width, colour_t colour, StringId format, void* args,
int32_t ticks);
void gfx_draw_string_with_y_offsets(
rct_drawpixelinfo* dpi, const utf8* text, int32_t colour, const ScreenCoordsXY& coords, const int8_t* yOffsets,
@ -579,8 +579,7 @@ void scrolling_text_invalidate();
class Formatter;
int32_t scrolling_text_setup(
struct paint_session& session, rct_string_id stringId, Formatter& ft, uint16_t scroll, uint16_t scrollingMode,
colour_t colour);
struct paint_session& session, StringId stringId, Formatter& ft, uint16_t scroll, uint16_t scrollingMode, colour_t colour);
rct_size16 FASTCALL gfx_get_sprite_size(uint32_t image_id);
size_t g1_calculate_data_size(const rct_g1_element* g1);

View File

@ -28,7 +28,7 @@ using namespace OpenRCT2::Drawing;
using namespace OpenRCT2::Paint;
using namespace OpenRCT2::Ui;
rct_string_id DrawingEngineStringIds[] = {
StringId DrawingEngineStringIds[] = {
STR_DRAWING_ENGINE_SOFTWARE,
STR_DRAWING_ENGINE_SOFTWARE_WITH_HARDWARE_DISPLAY,
STR_DRAWING_ENGINE_OPENGL,

Some files were not shown because too many files have changed in this diff Show More