Use formatter at more places (#952)
* Remove static keyword, this may lock * Use universal references and cleanup * Use the argument formatter in GameCommands.cpp * Use the argument formatter in KeyboardShortcuts.cpp
This commit is contained in:
parent
2bfbb3208c
commit
8ebeea350b
|
@ -2,6 +2,7 @@
|
|||
#include "../Audio/Audio.h"
|
||||
#include "../Company.h"
|
||||
#include "../CompanyManager.h"
|
||||
#include "../Localisation/FormatArguments.hpp"
|
||||
#include "../Map/Tile.h"
|
||||
#include "../Objects/ObjectManager.h"
|
||||
#include "../Objects/RoadObject.h"
|
||||
|
@ -346,8 +347,9 @@ namespace OpenLoco::GameCommands
|
|||
if (pObject == nullptr)
|
||||
break;
|
||||
|
||||
_commonFormatArgs[0] = pObject->name;
|
||||
_commonFormatArgs[1] = CompanyManager::get(_errorCompanyId)->name;
|
||||
auto formatter = FormatArguments::common();
|
||||
formatter.push(pObject->name);
|
||||
formatter.push(CompanyManager::get(_errorCompanyId)->name);
|
||||
Windows::Error::openWithCompetitor(_gGameCommandErrorTitle, StringIds::error_reason_stringid_belongs_to, _errorCompanyId);
|
||||
return 0x80000000;
|
||||
}
|
||||
|
@ -362,8 +364,9 @@ namespace OpenLoco::GameCommands
|
|||
if (pObject == nullptr)
|
||||
break;
|
||||
|
||||
_commonFormatArgs[0] = pObject->name;
|
||||
_commonFormatArgs[1] = CompanyManager::get(_errorCompanyId)->name;
|
||||
auto formatter = FormatArguments::common();
|
||||
formatter.push(pObject->name);
|
||||
formatter.push(CompanyManager::get(_errorCompanyId)->name);
|
||||
Windows::Error::openWithCompetitor(_gGameCommandErrorTitle, StringIds::error_reason_stringid_belongs_to, _errorCompanyId);
|
||||
return 0x80000000;
|
||||
}
|
||||
|
@ -378,16 +381,18 @@ namespace OpenLoco::GameCommands
|
|||
if (pStation == nullptr)
|
||||
break;
|
||||
|
||||
_commonFormatArgs[0] = pStation->name;
|
||||
_commonFormatArgs[1] = pStation->town;
|
||||
_commonFormatArgs[2] = CompanyManager::get(_errorCompanyId)->name;
|
||||
auto formatter = FormatArguments::common();
|
||||
formatter.push(pStation->name);
|
||||
formatter.push(pStation->town);
|
||||
formatter.push(CompanyManager::get(_errorCompanyId)->name);
|
||||
Windows::Error::openWithCompetitor(_gGameCommandErrorTitle, StringIds::error_reason_stringid_belongs_to, _errorCompanyId);
|
||||
return 0x80000000;
|
||||
}
|
||||
|
||||
case element_type::signal: // 0x0C
|
||||
{
|
||||
_commonFormatArgs[0] = CompanyManager::get(_errorCompanyId)->name;
|
||||
auto formatter = FormatArguments::common();
|
||||
formatter.push(CompanyManager::get(_errorCompanyId)->name);
|
||||
Windows::Error::openWithCompetitor(_gGameCommandErrorTitle, StringIds::error_reason_signal_belongs_to, _errorCompanyId);
|
||||
return 0x80000000;
|
||||
}
|
||||
|
@ -398,7 +403,8 @@ namespace OpenLoco::GameCommands
|
|||
}
|
||||
|
||||
// fallback
|
||||
_commonFormatArgs[0] = CompanyManager::get(_errorCompanyId)->name;
|
||||
auto formatter = FormatArguments::common();
|
||||
formatter.push(CompanyManager::get(_errorCompanyId)->name);
|
||||
Windows::Error::openWithCompetitor(_gGameCommandErrorTitle, StringIds::error_reason_stringid_belongs_to, _errorCompanyId);
|
||||
return 0x80000000;
|
||||
}
|
||||
|
|
|
@ -31,19 +31,19 @@ namespace OpenLoco
|
|||
}
|
||||
|
||||
template<typename... T>
|
||||
static FormatArguments common(T... args)
|
||||
static FormatArguments common(T&&... args)
|
||||
{
|
||||
loco_global<std::byte[0x0112C83A - 0x0112C826], 0x0112C826> _commonFormatArgs;
|
||||
FormatArguments formatter{ &*_commonFormatArgs, std::size(_commonFormatArgs) };
|
||||
FormatArguments formatter{ _commonFormatArgs.get(), std::size(_commonFormatArgs) };
|
||||
(formatter.push(args), ...);
|
||||
return formatter;
|
||||
}
|
||||
|
||||
template<typename... T>
|
||||
static FormatArguments mapToolTip(T... args)
|
||||
static FormatArguments mapToolTip(T&&... args)
|
||||
{
|
||||
static loco_global<std::byte[40], 0x0050A018> _mapTooltipFormatArguments;
|
||||
FormatArguments formatter{ &*_mapTooltipFormatArguments, std::size(_mapTooltipFormatArguments) };
|
||||
loco_global<std::byte[40], 0x0050A018> _mapTooltipFormatArguments;
|
||||
FormatArguments formatter{ _mapTooltipFormatArguments.get(), std::size(_mapTooltipFormatArguments) };
|
||||
(formatter.push(args), ...);
|
||||
return formatter;
|
||||
}
|
||||
|
|
|
@ -14,11 +14,9 @@ using namespace OpenLoco::Input;
|
|||
|
||||
namespace OpenLoco::Ui::Windows::KeyboardShortcuts
|
||||
{
|
||||
|
||||
static const int rowHeight = 10; // CJK: 13
|
||||
|
||||
static window_event_list _events;
|
||||
static loco_global<string_id[8], 0x0112C826> _commonFormatArgs;
|
||||
|
||||
static widget_t _widgets[] = {
|
||||
makeWidget({ 0, 0 }, { 360, 238 }, widget_type::frame, 0),
|
||||
|
@ -115,27 +113,32 @@ namespace OpenLoco::Ui::Windows::KeyboardShortcuts
|
|||
format = StringIds::wcolour2_stringid;
|
||||
}
|
||||
|
||||
_commonFormatArgs[1] = ShortcutManager::getName(static_cast<Shortcut>(i));
|
||||
_commonFormatArgs[2] = StringIds::empty;
|
||||
_commonFormatArgs[3] = StringIds::empty;
|
||||
auto modifierStringId = StringIds::empty;
|
||||
auto baseStringId = StringIds::empty;
|
||||
|
||||
if (Config::get().keyboard_shortcuts[i].var_0 != 0xFF)
|
||||
{
|
||||
_commonFormatArgs[3] = StringIds::shortcut_key_base + Config::get().keyboard_shortcuts[i].var_0;
|
||||
|
||||
if (Config::get().keyboard_shortcuts[i].var_1 != 0)
|
||||
{
|
||||
_commonFormatArgs[2] = StringIds::keyboard_shortcut_modifier_shift;
|
||||
if (Config::get().keyboard_shortcuts[i].var_1 != 1)
|
||||
{
|
||||
_commonFormatArgs[2] = StringIds::keyboard_shortcut_modifier_ctrl;
|
||||
modifierStringId = StringIds::keyboard_shortcut_modifier_ctrl;
|
||||
}
|
||||
else
|
||||
{
|
||||
modifierStringId = StringIds::keyboard_shortcut_modifier_shift;
|
||||
}
|
||||
}
|
||||
baseStringId = StringIds::shortcut_key_base + Config::get().keyboard_shortcuts[i].var_0;
|
||||
}
|
||||
|
||||
_commonFormatArgs[0] = StringIds::keyboard_shortcut_list_format;
|
||||
auto formatter = FormatArguments::common();
|
||||
formatter.push(StringIds::keyboard_shortcut_list_format);
|
||||
formatter.push(ShortcutManager::getName(static_cast<Shortcut>(i)));
|
||||
formatter.push(modifierStringId);
|
||||
formatter.push(baseStringId);
|
||||
|
||||
Gfx::drawString_494B3F(*dpi, 0, yPos - 1, Colour::black, format, _commonFormatArgs);
|
||||
Gfx::drawString_494B3F(*dpi, 0, yPos - 1, Colour::black, format, &formatter);
|
||||
yPos += rowHeight;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue