Several header files are including StringIds.h, which necessitates a near-full recompile of the source tree when a string is added. We should try to keep this inclusion to .cpp files only.
src/OpenLoco/Window.h:#include "Localisation/StringIds.h"
src/OpenLoco/Window.h: static constexpr widget_t makeWidget(Gfx::point_t origin, Gfx::ui_size_t size, widget_type type, uint8_t colour, uint32_t content = 0xFFFFFFFF, string_id tooltip = StringIds::null)
src/OpenLoco/Window.h: constexpr widget_t makeRemapWidget(Gfx::point_t origin, Gfx::ui_size_t size, widget_type type, uint8_t colour, uint32_t content = 0xFFFFFFFF, string_id tooltip = StringIds::null)
src/OpenLoco/Window.h: [[maybe_unused]] static constexpr widget_t makeStepperDecreaseWidget(Gfx::point_t origin, Gfx::ui_size_t size, [[maybe_unused]] widget_type type, uint8_t colour, [[maybe_unused]] uint32_t content = 0xFFFFFFFF, [[maybe_unused]] string_id tooltip = StringIds::null)
src/OpenLoco/Window.h: return makeWidget({ xPos, yPos }, { width, height }, widget_type::wt_11, colour, StringIds::stepper_minus);
src/OpenLoco/Window.h: [[maybe_unused]] static constexpr widget_t makeStepperIncreaseWidget(Gfx::point_t origin, Gfx::ui_size_t size, [[maybe_unused]] widget_type type, uint8_t colour, [[maybe_unused]] uint32_t content = 0xFFFFFFFF, [[maybe_unused]] string_id tooltip = StringIds::null)
src/OpenLoco/Window.h: return makeWidget({ xPos, yPos }, { width, height }, widget_type::wt_11, colour, StringIds::stepper_plus);
src/OpenLoco/Window.h: constexpr widget_t makeTextWidget(Gfx::point_t origin, Gfx::ui_size_t size, widget_type type, uint8_t colour, string_id content, string_id tooltip = StringIds::null)
src/OpenLoco/Windows/Construction/Construction.h: makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, widget_type::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
src/OpenLoco/Windows/Construction/Construction.h: makeRemapWidget({ 3, 15 }, { 31, 27 }, widget_type::wt_8, 1, ImageIds::tab, StringIds::tab_track_road_construction), \
src/OpenLoco/Windows/Construction/Construction.h: makeRemapWidget({ 34, 15 }, { 31, 27 }, widget_type::wt_8, 1, ImageIds::tab, StringIds::tab_station_construction), \
src/OpenLoco/Windows/Construction/Construction.h: makeRemapWidget({ 65, 15 }, { 31, 27 }, widget_type::wt_8, 1, ImageIds::tab, StringIds::tab_signal_construction), \
src/OpenLoco/Windows/Construction/Construction.h: makeRemapWidget({ 96, 15 }, { 31, 27 }, widget_type::wt_8, 1, ImageIds::tab, StringIds::tab_electrification_construction)
src/OpenLoco/Windows/News/News.h: makeWidget({ frameWidth - 15, 2 }, { 13, 13 }, widget_type::wt_9, 0, ImageIds::close_button, StringIds::tooltip_close_window), \
src/OpenLoco/Localisation/StringIds.h:namespace OpenLoco::StringIds
src/OpenLoco/Localisation/StringManager.h: namespace StringIds
src/OpenLoco/Ui/WindowManager.h: void showError(string_id title, string_id message = StringIds::null, bool sound = true);
src/OpenLoco/Objects/CompetitorObject.h:#include "../Localisation/StringIds.h"
src/OpenLoco/Objects/VehicleObject.h:#include "../Localisation/StringIds.h"
src/OpenLoco/Objects/VehicleObject.h: namespace StringIds
src/OpenLoco/Objects/VehicleObject.h: return StringIds::train;
src/OpenLoco/Objects/VehicleObject.h: return StringIds::bus;
src/OpenLoco/Objects/VehicleObject.h: return StringIds::truck;
src/OpenLoco/Objects/VehicleObject.h: return StringIds::tram;
src/OpenLoco/Objects/VehicleObject.h: return StringIds::aircraft;
src/OpenLoco/Objects/VehicleObject.h: return StringIds::ship;
src/OpenLoco/Objects/VehicleObject.h: return StringIds::empty;
src/OpenLoco/Station.h: bool empty() const { return name == StringIds::null; }
Several header files are including StringIds.h, which necessitates a near-full recompile of the source tree when a string is added. We should try to keep this inclusion to .cpp files only.