diff --git a/src/openrct2-ui/input/ShortcutIds.h b/src/openrct2-ui/input/ShortcutIds.h index abccb398be..8cde2c217c 100644 --- a/src/openrct2-ui/input/ShortcutIds.h +++ b/src/openrct2-ui/input/ShortcutIds.h @@ -9,106 +9,108 @@ #pragma once +#include + namespace OpenRCT2::Ui::ShortcutId { // Interface / general - constexpr const char* InterfaceCloseTop = "interface.general.close_top"; - constexpr const char* InterfaceCloseAll = "interface.general.close_all"; - constexpr const char* InterfaceCancelConstruction = "interface.general.cancel_construction"; - constexpr const char* InterfacePause = "interface.general.pause"; - constexpr const char* InterfaceZoomOut = "interface.general.zoom_out"; - constexpr const char* InterfaceZoomIn = "interface.general.zoom_in"; - constexpr const char* InterfaceRotateClockwise = "interface.general.rotate_clockwise"; - constexpr const char* InterfaceRotateAnticlockwise = "interface.general.rotate_anticlockwise"; - constexpr const char* InterfaceRotateConstruction = "interface.general.rotate_construction"; - constexpr const char* InterfaceDecreaseSpeed = "interface.misc.decrease_speed"; - constexpr const char* InterfaceIncreaseSpeed = "interface.misc.increase_speed"; - constexpr const char* InterfaceToggleToolbars = "interface.misc.toggle_toolbars"; - constexpr const char* InterfaceScreenshot = "interface.misc.screenshot"; - constexpr const char* InterfaceLoadGame = "interface.misc.load_game"; - constexpr const char* InterfaceSaveGame = "interface.misc.save_game"; - constexpr const char* InterfaceMute = "interface.misc.mute"; - constexpr const char* InterfaceSceneryPicker = "interface.misc.scenery_picker"; - constexpr const char* InterfaceDisableClearance = "interface.misc.disable_clearance"; - constexpr const char* MultiplayerChat = "interface.misc.multiplayer_chat"; + constexpr std::string_view InterfaceCloseTop = "interface.general.close_top"; + constexpr std::string_view InterfaceCloseAll = "interface.general.close_all"; + constexpr std::string_view InterfaceCancelConstruction = "interface.general.cancel_construction"; + constexpr std::string_view InterfacePause = "interface.general.pause"; + constexpr std::string_view InterfaceZoomOut = "interface.general.zoom_out"; + constexpr std::string_view InterfaceZoomIn = "interface.general.zoom_in"; + constexpr std::string_view InterfaceRotateClockwise = "interface.general.rotate_clockwise"; + constexpr std::string_view InterfaceRotateAnticlockwise = "interface.general.rotate_anticlockwise"; + constexpr std::string_view InterfaceRotateConstruction = "interface.general.rotate_construction"; + constexpr std::string_view InterfaceDecreaseSpeed = "interface.misc.decrease_speed"; + constexpr std::string_view InterfaceIncreaseSpeed = "interface.misc.increase_speed"; + constexpr std::string_view InterfaceToggleToolbars = "interface.misc.toggle_toolbars"; + constexpr std::string_view InterfaceScreenshot = "interface.misc.screenshot"; + constexpr std::string_view InterfaceLoadGame = "interface.misc.load_game"; + constexpr std::string_view InterfaceSaveGame = "interface.misc.save_game"; + constexpr std::string_view InterfaceMute = "interface.misc.mute"; + constexpr std::string_view InterfaceSceneryPicker = "interface.misc.scenery_picker"; + constexpr std::string_view InterfaceDisableClearance = "interface.misc.disable_clearance"; + constexpr std::string_view MultiplayerChat = "interface.misc.multiplayer_chat"; // Interface / scroll - constexpr const char* ScrollUp = "interface.scroll.up"; - constexpr const char* ScrollLeft = "interface.scroll.left"; - constexpr const char* ScrollRight = "interface.scroll.right"; - constexpr const char* ScrollDown = "interface.scroll.down"; + constexpr std::string_view ScrollUp = "interface.scroll.up"; + constexpr std::string_view ScrollLeft = "interface.scroll.left"; + constexpr std::string_view ScrollRight = "interface.scroll.right"; + constexpr std::string_view ScrollDown = "interface.scroll.down"; // Interface / graphics - constexpr const char* ScaleToggleWindowMode = "interface.graphics.toggle_window_mode"; - constexpr const char* InterfaceScaleIncrease = "interface.graphics.increase"; - constexpr const char* InterfaceScaleDecrease = "interface.graphics.decrease"; + constexpr std::string_view ScaleToggleWindowMode = "interface.graphics.toggle_window_mode"; + constexpr std::string_view InterfaceScaleIncrease = "interface.graphics.increase"; + constexpr std::string_view InterfaceScaleDecrease = "interface.graphics.decrease"; // Interface / open - constexpr const char* InterfaceOpenLand = "interface.open.land"; - constexpr const char* InterfaceOpenWater = "interface.open.water"; - constexpr const char* InterfaceClearScenery = "interface.open.clear_scenery"; - constexpr const char* InterfaceOpenScenery = "interface.open.scenery"; - constexpr const char* InterfaceOpenFootpaths = "interface.open.footpaths"; - constexpr const char* InterfaceOpenNewRide = "interface.open.new_ride"; - constexpr const char* InterfaceOpenFinances = "interface.open.finances"; - constexpr const char* InterfaceOpenResearch = "interface.open.research"; - constexpr const char* InterfaceOpenRides = "interface.open.rides"; - constexpr const char* InterfaceOpenPark = "interface.open.park"; - constexpr const char* InterfaceOpenGuests = "interface.open.guests"; - constexpr const char* InterfaceOpenStaff = "interface.open.staff"; - constexpr const char* InterfaceOpenMessages = "interface.open.messages"; - constexpr const char* InterfaceOpenMap = "interface.open.map"; - constexpr const char* InterfaceShowOptions = "interface.open.options"; - constexpr const char* InterfaceOpenCheats = "interface.open.cheats"; - constexpr const char* InterfaceOpenTileInspector = "interface.open.tileinspector"; - constexpr const char* MultiplayerShow = "interface.open.multiplayer"; + constexpr std::string_view InterfaceOpenLand = "interface.open.land"; + constexpr std::string_view InterfaceOpenWater = "interface.open.water"; + constexpr std::string_view InterfaceClearScenery = "interface.open.clear_scenery"; + constexpr std::string_view InterfaceOpenScenery = "interface.open.scenery"; + constexpr std::string_view InterfaceOpenFootpaths = "interface.open.footpaths"; + constexpr std::string_view InterfaceOpenNewRide = "interface.open.new_ride"; + constexpr std::string_view InterfaceOpenFinances = "interface.open.finances"; + constexpr std::string_view InterfaceOpenResearch = "interface.open.research"; + constexpr std::string_view InterfaceOpenRides = "interface.open.rides"; + constexpr std::string_view InterfaceOpenPark = "interface.open.park"; + constexpr std::string_view InterfaceOpenGuests = "interface.open.guests"; + constexpr std::string_view InterfaceOpenStaff = "interface.open.staff"; + constexpr std::string_view InterfaceOpenMessages = "interface.open.messages"; + constexpr std::string_view InterfaceOpenMap = "interface.open.map"; + constexpr std::string_view InterfaceShowOptions = "interface.open.options"; + constexpr std::string_view InterfaceOpenCheats = "interface.open.cheats"; + constexpr std::string_view InterfaceOpenTileInspector = "interface.open.tileinspector"; + constexpr std::string_view MultiplayerShow = "interface.open.multiplayer"; // View - constexpr const char* ViewToggleUnderground = "view.show_underground"; - constexpr const char* ViewToggleBaseLand = "view.hide_base_land"; - constexpr const char* ViewToggleVerticalLand = "view.hide_vertical_land"; - constexpr const char* ViewToggleRides = "view.transparent_rides"; - constexpr const char* ViewToggleScenery = "view.transparent_scenery"; - constexpr const char* ViewToggleSupports = "view.hide_supports"; - constexpr const char* ViewTogglePeeps = "view.hide_peeps"; - constexpr const char* ViewToggleLandHeightMarkers = "view.show_land_height"; - constexpr const char* ViewToggleTrackHeightMarkers = "view.show_track_height"; - constexpr const char* ViewToggleFootpathHeightMarkers = "view.show_footpath_height"; - constexpr const char* ViewToggleFootpaths = "view.transparent_footpaths"; - constexpr const char* ViewToggleGridlines = "view.show_gridlines"; - constexpr const char* ViewToggleCutAway = "view.toggle_cut_away"; - constexpr const char* ViewToogleFootpathIssues = "view.highlight_path_issues"; + constexpr std::string_view ViewToggleUnderground = "view.show_underground"; + constexpr std::string_view ViewToggleBaseLand = "view.hide_base_land"; + constexpr std::string_view ViewToggleVerticalLand = "view.hide_vertical_land"; + constexpr std::string_view ViewToggleRides = "view.transparent_rides"; + constexpr std::string_view ViewToggleScenery = "view.transparent_scenery"; + constexpr std::string_view ViewToggleSupports = "view.hide_supports"; + constexpr std::string_view ViewTogglePeeps = "view.hide_peeps"; + constexpr std::string_view ViewToggleLandHeightMarkers = "view.show_land_height"; + constexpr std::string_view ViewToggleTrackHeightMarkers = "view.show_track_height"; + constexpr std::string_view ViewToggleFootpathHeightMarkers = "view.show_footpath_height"; + constexpr std::string_view ViewToggleFootpaths = "view.transparent_footpaths"; + constexpr std::string_view ViewToggleGridlines = "view.show_gridlines"; + constexpr std::string_view ViewToggleCutAway = "view.toggle_cut_away"; + constexpr std::string_view ViewToogleFootpathIssues = "view.highlight_path_issues"; // Window / ride construction - constexpr const char* WindowRideConstructionTurnLeft = "window.rideconstruction.turn_left"; - constexpr const char* WindowRideConstructionTurnRight = "window.rideconstruction.turn_right"; - constexpr const char* WindowRideConstructionDefault = "window.rideconstruction.default"; - constexpr const char* WindowRideConstructionSlopeDown = "window.rideconstruction.slope_down"; - constexpr const char* WindowRideConstructionSlopeUp = "window.rideconstruction.slope_up"; - constexpr const char* WindowRideConstructionChainLift = "window.rideconstruction.chain_lift"; - constexpr const char* WindowRideConstructionBankLeft = "window.rideconstruction.bank_left"; - constexpr const char* WindowRideConstructionBankRight = "window.rideconstruction.bank_right"; - constexpr const char* WindowRideConstructionPrevious = "window.rideconstruction.previous"; - constexpr const char* WindowRideConstructionNext = "window.rideconstruction.next"; - constexpr const char* WindowRideConstructionBuild = "window.rideconstruction.build"; - constexpr const char* WindowRideConstructionDemolish = "window.rideconstruction.demolish"; + constexpr std::string_view WindowRideConstructionTurnLeft = "window.rideconstruction.turn_left"; + constexpr std::string_view WindowRideConstructionTurnRight = "window.rideconstruction.turn_right"; + constexpr std::string_view WindowRideConstructionDefault = "window.rideconstruction.default"; + constexpr std::string_view WindowRideConstructionSlopeDown = "window.rideconstruction.slope_down"; + constexpr std::string_view WindowRideConstructionSlopeUp = "window.rideconstruction.slope_up"; + constexpr std::string_view WindowRideConstructionChainLift = "window.rideconstruction.chain_lift"; + constexpr std::string_view WindowRideConstructionBankLeft = "window.rideconstruction.bank_left"; + constexpr std::string_view WindowRideConstructionBankRight = "window.rideconstruction.bank_right"; + constexpr std::string_view WindowRideConstructionPrevious = "window.rideconstruction.previous"; + constexpr std::string_view WindowRideConstructionNext = "window.rideconstruction.next"; + constexpr std::string_view WindowRideConstructionBuild = "window.rideconstruction.build"; + constexpr std::string_view WindowRideConstructionDemolish = "window.rideconstruction.demolish"; // Window / tile inspector - constexpr const char* WindowTileInspectorInsertCorrupt = "window.tileinspector.insert_corrupt"; - constexpr const char* WindowTileInspectorCopy = "window.tileinspector.copy"; - constexpr const char* WindowTileInspectorPaste = "window.tileinspector.paste"; - constexpr const char* WindowTileInspectorRemove = "window.tileinspector.remove"; - constexpr const char* WindowTileInspectorMoveUp = "window.tileinspector.move_up"; - constexpr const char* WindowTileInspectorMoveDown = "window.tileinspector.move_down"; - constexpr const char* WindowTileInspectorIncreaseX = "window.tileinspector.increase_x"; - constexpr const char* WindowTileInspectorDecreaseX = "window.tileinspector.decrease_x"; - constexpr const char* WindowTileInspectorIncreaseY = "window.tileinspector.increase_y"; - constexpr const char* WindowTileInspectorDecreaseY = "window.tileinspector.decrease_y"; - constexpr const char* WindowTileInspectorIncreaseHeight = "window.tileinspector.increase_height"; - constexpr const char* WindowTileInspectorDecreaseHeight = "window.tileinspector.decrease_height"; + constexpr std::string_view WindowTileInspectorInsertCorrupt = "window.tileinspector.insert_corrupt"; + constexpr std::string_view WindowTileInspectorCopy = "window.tileinspector.copy"; + constexpr std::string_view WindowTileInspectorPaste = "window.tileinspector.paste"; + constexpr std::string_view WindowTileInspectorRemove = "window.tileinspector.remove"; + constexpr std::string_view WindowTileInspectorMoveUp = "window.tileinspector.move_up"; + constexpr std::string_view WindowTileInspectorMoveDown = "window.tileinspector.move_down"; + constexpr std::string_view WindowTileInspectorIncreaseX = "window.tileinspector.increase_x"; + constexpr std::string_view WindowTileInspectorDecreaseX = "window.tileinspector.decrease_x"; + constexpr std::string_view WindowTileInspectorIncreaseY = "window.tileinspector.increase_y"; + constexpr std::string_view WindowTileInspectorDecreaseY = "window.tileinspector.decrease_y"; + constexpr std::string_view WindowTileInspectorIncreaseHeight = "window.tileinspector.increase_height"; + constexpr std::string_view WindowTileInspectorDecreaseHeight = "window.tileinspector.decrease_height"; // Debug - constexpr const char* DebugToggleConsole = "debug.console"; - constexpr const char* DebugTogglePaintDebugWindow = "debug.toggle_paint_debug_window"; - constexpr const char* DebugAdvanceTick = "debug.advance_tick"; + constexpr std::string_view DebugToggleConsole = "debug.console"; + constexpr std::string_view DebugTogglePaintDebugWindow = "debug.toggle_paint_debug_window"; + constexpr std::string_view DebugAdvanceTick = "debug.advance_tick"; } // namespace OpenRCT2::Ui::ShortcutId diff --git a/src/openrct2-ui/input/ShortcutInput.cpp b/src/openrct2-ui/input/ShortcutInput.cpp index a392628046..8b3c01863e 100644 --- a/src/openrct2-ui/input/ShortcutInput.cpp +++ b/src/openrct2-ui/input/ShortcutInput.cpp @@ -17,7 +17,7 @@ using namespace OpenRCT2::Ui; constexpr uint32_t UsefulModifiers = KMOD_SHIFT | KMOD_CTRL | KMOD_ALT | KMOD_GUI; -static uint32_t ParseModifier(const std::string_view& text) +static uint32_t ParseModifier(std::string_view text) { if (String::Equals(text, "CTRL", true)) { @@ -73,7 +73,7 @@ static uint32_t ParseModifier(const std::string_view& text) } } -static uint32_t ParseKey(const std::string_view& text) +static uint32_t ParseKey(std::string_view text) { char buffer[128]{}; std::strncpy(buffer, text.data(), sizeof(buffer) - 1); @@ -103,7 +103,7 @@ static size_t FindPlus(std::string_view s, size_t index) return index; } -ShortcutInput::ShortcutInput(const std::string_view& value) +ShortcutInput::ShortcutInput(std::string_view value) { uint32_t modifiers = 0; size_t index = 0; @@ -322,7 +322,7 @@ std::string ShortcutInput::ToString() const return result; } -bool ShortcutInput::AppendModifier(std::string& s, const std::string_view& text, uint32_t left, uint32_t right) const +bool ShortcutInput::AppendModifier(std::string& s, std::string_view text, uint32_t left, uint32_t right) const { if ((Modifiers & (left | right)) == (left | right)) { diff --git a/src/openrct2-ui/input/ShortcutManager.cpp b/src/openrct2-ui/input/ShortcutManager.cpp index 46cfa2f602..af131a7cbd 100644 --- a/src/openrct2-ui/input/ShortcutManager.cpp +++ b/src/openrct2-ui/input/ShortcutManager.cpp @@ -351,7 +351,7 @@ void ShortcutManager::SaveUserBindings(const fs::path& path) std::string_view ShortcutManager::GetLegacyShortcutId(size_t index) { - static constexpr const char* LegacyMap[] = { + static constexpr std::string_view LegacyMap[] = { ShortcutId::InterfaceCloseTop, ShortcutId::InterfaceCloseAll, ShortcutId::InterfaceCancelConstruction, @@ -399,7 +399,7 @@ std::string_view ShortcutManager::GetLegacyShortcutId(size_t index) ShortcutId::InterfaceMute, ShortcutId::ScaleToggleWindowMode, ShortcutId::MultiplayerShow, - nullptr, + std::string_view(), ShortcutId::DebugTogglePaintDebugWindow, ShortcutId::ViewToggleFootpaths, ShortcutId::WindowRideConstructionTurnLeft, @@ -438,6 +438,5 @@ std::string_view ShortcutManager::GetLegacyShortcutId(size_t index) ShortcutId::WindowTileInspectorDecreaseHeight, ShortcutId::InterfaceDisableClearance, }; - auto sz = index < std::size(LegacyMap) ? LegacyMap[index] : nullptr; - return sz == nullptr ? std::string_view() : std::string_view(sz); + return index < std::size(LegacyMap) ? LegacyMap[index] : std::string_view(); } diff --git a/src/openrct2-ui/input/ShortcutManager.h b/src/openrct2-ui/input/ShortcutManager.h index 41fcf22f80..d20ec57aea 100644 --- a/src/openrct2-ui/input/ShortcutManager.h +++ b/src/openrct2-ui/input/ShortcutManager.h @@ -36,7 +36,7 @@ namespace OpenRCT2::Ui uint32_t Button{}; ShortcutInput() = default; - ShortcutInput(const std::string_view& value); + ShortcutInput(std::string_view value); std::string ToString() const; bool Matches(const InputEvent& e) const; @@ -44,7 +44,7 @@ namespace OpenRCT2::Ui static std::optional FromInputEvent(const InputEvent& e); private: - bool AppendModifier(std::string& s, const std::string_view& text, uint32_t left, uint32_t right) const; + bool AppendModifier(std::string& s, std::string_view text, uint32_t left, uint32_t right) const; }; class RegisteredShortcut @@ -58,14 +58,14 @@ namespace OpenRCT2::Ui std::function Action; RegisteredShortcut() = default; - RegisteredShortcut(const std::string_view& id, std::string_view name, const std::function& action) + RegisteredShortcut(std::string_view id, std::string_view name, const std::function& action) : Id(id) , CustomName(name) , Action(action) { } - RegisteredShortcut(const std::string_view& id, rct_string_id localisedName, const std::function& action) + RegisteredShortcut(std::string_view id, rct_string_id localisedName, const std::function& action) : Id(id) , LocalisedName(localisedName) , Action(action) @@ -73,7 +73,7 @@ namespace OpenRCT2::Ui } RegisteredShortcut( - const std::string_view& id, rct_string_id localisedName, const std::string_view& defaultChord, + std::string_view id, rct_string_id localisedName, std::string_view defaultChord, const std::function& action) : Id(id) , LocalisedName(localisedName) @@ -84,8 +84,8 @@ namespace OpenRCT2::Ui } RegisteredShortcut( - const std::string_view& id, rct_string_id localisedName, const std::string_view& defaultChordA, - const std::string_view& defaultChordB, const std::function& action) + std::string_view id, rct_string_id localisedName, std::string_view defaultChordA, std::string_view defaultChordB, + const std::function& action) : Id(id) , LocalisedName(localisedName) , Default({ defaultChordA, defaultChordB })