Skip to content

Reduce inclusion of StringIds.h in header files #741

@AaronVanGeffen

Description

@AaronVanGeffen

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; }

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions