diff --git a/src/openrct2-ui/input/KeyboardShortcut.cpp b/src/openrct2-ui/input/KeyboardShortcut.cpp index 20f3b12903..20a7f30630 100644 --- a/src/openrct2-ui/input/KeyboardShortcut.cpp +++ b/src/openrct2-ui/input/KeyboardShortcut.cpp @@ -38,31 +38,34 @@ extern bool gWindowSceneryEyedropperEnabled; -uint8_t gKeyboardShortcutChangeId; - using shortcut_action = void (*)(); +using namespace OpenRCT2; + +Input::Shortcut gKeyboardShortcutChangeId; namespace { - extern const shortcut_action shortcut_table[SHORTCUT_COUNT]; + extern const shortcut_action shortcut_table[Input::ShortcutsCount]; } /** * * rct2: 0x006E3E68 */ +using namespace OpenRCT2; void keyboard_shortcut_handle(int32_t key) { - int32_t shortcut = keyboard_shortcuts_get_from_key(key); - if (shortcut != -1) + auto shortcut = keyboard_shortcuts_get_from_key(key); + if (shortcut != Input::Shortcut::Undefined) { keyboard_shortcut_handle_command(shortcut); } } -void keyboard_shortcut_handle_command(int32_t shortcutIndex) +void keyboard_shortcut_handle_command(Input::Shortcut shortcut) { - if (shortcutIndex >= 0 && static_cast(shortcutIndex) < std::size(shortcut_table)) + size_t shortcutIndex = static_cast(shortcut); + if (shortcutIndex < std::size(shortcut_table)) { shortcut_action action = shortcut_table[shortcutIndex]; if (action != nullptr) @@ -1029,7 +1032,8 @@ static void shortcut_toggle_clearance_checks() namespace { - const shortcut_action shortcut_table[SHORTCUT_COUNT] = { + using namespace OpenRCT2::Input; + const shortcut_action shortcut_table[ShortcutsCount] = { shortcut_close_top_most_window, shortcut_close_all_floating_windows, shortcut_cancel_construction_mode, diff --git a/src/openrct2-ui/input/KeyboardShortcuts.cpp b/src/openrct2-ui/input/KeyboardShortcuts.cpp index 84b3b21aef..6a58961081 100644 --- a/src/openrct2-ui/input/KeyboardShortcuts.cpp +++ b/src/openrct2-ui/input/KeyboardShortcuts.cpp @@ -86,7 +86,7 @@ KeyboardShortcuts::~KeyboardShortcuts() void KeyboardShortcuts::Reset() { - for (size_t i = 0; i < SHORTCUT_COUNT; i++) + for (size_t i = 0; i < ShortcutsCount; i++) { _keys[i] = DefaultKeys[i]; } @@ -106,8 +106,8 @@ bool KeyboardShortcuts::Load() if (version == KeyboardShortcuts::CURRENT_FILE_VERSION) { int32_t numShortcutsInFile = (fs.GetLength() - sizeof(uint16_t)) / sizeof(uint16_t); - int32_t numShortcutsToRead = std::min(SHORTCUT_COUNT, numShortcutsInFile); - for (int32_t i = 0; i < numShortcutsToRead; i++) + auto numShortcutsToRead = std::min(ShortcutsCount, numShortcutsInFile); + for (size_t i = 0; i < numShortcutsToRead; i++) { _keys[i] = fs.ReadValue(); } @@ -130,7 +130,7 @@ bool KeyboardShortcuts::Save() std::string path = _env->GetFilePath(PATHID::CONFIG_KEYBOARD); auto fs = FileStream(path, FILE_MODE_WRITE); fs.WriteValue(KeyboardShortcuts::CURRENT_FILE_VERSION); - for (int32_t i = 0; i < SHORTCUT_COUNT; i++) + for (size_t i = 0; i < ShortcutsCount; i++) { fs.WriteValue(_keys[i]); } @@ -146,27 +146,27 @@ bool KeyboardShortcuts::Save() void KeyboardShortcuts::Set(int32_t key) { // Unmap shortcut that already uses this key - int32_t shortcut = GetFromKey(key); - if (shortcut != SHORTCUT_UNDEFINED) + auto shortcut = GetFromKey(key); + if (shortcut != Input::Shortcut::Undefined) { - _keys[shortcut] = SHORTCUT_UNDEFINED; + _keys[static_cast(shortcut)] = static_cast(Input::Shortcut::Undefined); } // Map shortcut to this key - _keys[gKeyboardShortcutChangeId] = key; + _keys[static_cast(gKeyboardShortcutChangeId)] = key; Save(); } -int32_t KeyboardShortcuts::GetFromKey(int32_t key) +Shortcut KeyboardShortcuts::GetFromKey(int32_t key) { - for (int32_t i = 0; i < SHORTCUT_COUNT; i++) + for (size_t i = 0; i < ShortcutsCount; i++) { if (key == _keys[i]) { - return i; + return static_cast(i); } } - return SHORTCUT_UNDEFINED; + return Input::Shortcut::Undefined; } std::string KeyboardShortcuts::GetShortcutString(int32_t shortcut) const @@ -174,7 +174,7 @@ std::string KeyboardShortcuts::GetShortcutString(int32_t shortcut) const utf8 buffer[256] = { 0 }; utf8 formatBuffer[256] = { 0 }; uint16_t shortcutKey = _keys[shortcut]; - if (shortcutKey == SHORTCUT_UNDEFINED) + if (shortcutKey == Input::ScanCodeUndefined) return std::string(); if (shortcutKey & SHIFT) { @@ -219,12 +219,13 @@ std::string KeyboardShortcuts::GetShortcutString(int32_t shortcut) const ScreenCoordsXY KeyboardShortcuts::GetKeyboardMapScroll(const uint8_t* keysState) const { ScreenCoordsXY screenCoords; - for (int32_t shortcutId = SHORTCUT_SCROLL_MAP_UP; shortcutId <= SHORTCUT_SCROLL_MAP_RIGHT; shortcutId++) + for (int32_t shortcutId = static_cast(Input::Shortcut::ScrollMapUp); + shortcutId <= static_cast(Input::Shortcut::ScrollMapRight); shortcutId++) { uint16_t shortcutKey = _keys[shortcutId]; uint8_t scancode = shortcutKey & 0xFF; - if (shortcutKey == 0xFFFF) + if (shortcutKey == Input::ScanCodeUndefined) continue; if (!keysState[scancode]) continue; @@ -241,18 +242,19 @@ ScreenCoordsXY KeyboardShortcuts::GetKeyboardMapScroll(const uint8_t* keysState) if (static_cast(shortcutKey & CMD) != (keysState[SDL_SCANCODE_LGUI] || keysState[SDL_SCANCODE_RGUI])) continue; #endif - switch (shortcutId) + auto convertedShortcut = static_cast(shortcutId); + switch (convertedShortcut) { - case SHORTCUT_SCROLL_MAP_UP: + case Input::Shortcut::ScrollMapUp: screenCoords.y = -1; break; - case SHORTCUT_SCROLL_MAP_LEFT: + case Input::Shortcut::ScrollMapLeft: screenCoords.x = -1; break; - case SHORTCUT_SCROLL_MAP_DOWN: + case Input::Shortcut::ScrollMapDown: screenCoords.y = 1; break; - case SHORTCUT_SCROLL_MAP_RIGHT: + case Input::Shortcut::ScrollMapRight: screenCoords.x = 1; break; default: @@ -282,7 +284,7 @@ void keyboard_shortcuts_set(int32_t key) return _instance->Set(key); } -int32_t keyboard_shortcuts_get_from_key(int32_t key) +Shortcut keyboard_shortcuts_get_from_key(int32_t key) { return _instance->GetFromKey(key); } @@ -299,7 +301,7 @@ ScreenCoordsXY get_keyboard_map_scroll(const uint8_t* keysState) } // Default keyboard shortcuts -const uint16_t KeyboardShortcuts::DefaultKeys[SHORTCUT_COUNT] = { +const uint16_t KeyboardShortcuts::DefaultKeys[Input::ShortcutsCount] = { SDL_SCANCODE_BACKSPACE, // SHORTCUT_CLOSE_TOP_MOST_WINDOW SHIFT | SDL_SCANCODE_BACKSPACE, // SHORTCUT_CLOSE_ALL_FLOATING_WINDOWS SDL_SCANCODE_ESCAPE, // SHORTCUT_CANCEL_CONSTRUCTION_MODE @@ -343,13 +345,13 @@ const uint16_t KeyboardShortcuts::DefaultKeys[SHORTCUT_COUNT] = { SDL_SCANCODE_RIGHT, // SHORTCUT_SCROLL_MAP_RIGHT SDL_SCANCODE_C, // SHORTCUT_OPEN_CHAT_WINDOW PLATFORM_MODIFIER | SDL_SCANCODE_F10, // SHORTCUT_QUICK_SAVE_GAME - SHORTCUT_UNDEFINED, // SHORTCUT_SHOW_OPTIONS - SHORTCUT_UNDEFINED, // SHORTCUT_MUTE_SOUND + Input::ScanCodeUndefined, // SHORTCUT_SHOW_OPTIONS + Input::ScanCodeUndefined, // SHORTCUT_MUTE_SOUND ALT | SDL_SCANCODE_RETURN, // SHORTCUT_WINDOWED_MODE_TOGGLE - SHORTCUT_UNDEFINED, // SHORTCUT_SHOW_MULTIPLAYER - SHORTCUT_UNDEFINED, // SHORTCUT_PAINT_ORIGINAL_TOGGLE - SHORTCUT_UNDEFINED, // SHORTCUT_DEBUG_PAINT_TOGGLE - SHORTCUT_UNDEFINED, // SHORTCUT_SEE_THROUGH_PATHS_TOGGLE + Input::ScanCodeUndefined, // SHORTCUT_SHOW_MULTIPLAYER + Input::ScanCodeUndefined, // SHORTCUT_PAINT_ORIGINAL_TOGGLE + Input::ScanCodeUndefined, // SHORTCUT_DEBUG_PAINT_TOGGLE + Input::ScanCodeUndefined, // SHORTCUT_SEE_THROUGH_PATHS_TOGGLE SDL_SCANCODE_KP_4, // SHORTCUT_RIDE_CONSTRUCTION_TURN_LEFT SDL_SCANCODE_KP_6, // SHORTCUT_RIDE_CONSTRUCTION_TURN_RIGHT SDL_SCANCODE_KP_5, // SHORTCUT_RIDE_CONSTRUCTION_USE_TRACK_DEFAULT @@ -365,12 +367,12 @@ const uint16_t KeyboardShortcuts::DefaultKeys[SHORTCUT_COUNT] = { PLATFORM_MODIFIER | SDL_SCANCODE_L, // SHORTCUT_LOAD_GAME SDL_SCANCODE_B, // SHORTCUT_CLEAR_SCENERY SDL_SCANCODE_7, // SHORTCUT_GRIDLINES_DISPLAY_TOGGLE - SHORTCUT_UNDEFINED, // SHORTCUT_VIEW_CLIPPING + Input::ScanCodeUndefined, // SHORTCUT_VIEW_CLIPPING SDL_SCANCODE_I, // SHORTCUT_HIGHLIGHT_PATH_ISSUES_TOGGLE - SHORTCUT_UNDEFINED, // SHORTCUT_TILE_INSPECTOR - SHORTCUT_UNDEFINED, // SHORTCUT_ADVANCE_TO_NEXT_TICK - SHORTCUT_UNDEFINED, // SHORTCUT_SCENERY_PICKER - SHORTCUT_UNDEFINED, // SHORTCUT_SCALE_UP - SHORTCUT_UNDEFINED, // SHORTCUT_SCALE_DOWN - SHORTCUT_UNDEFINED, // SHORTCUT_TOGGLE_CLEARANCE_CHECKS + Input::ScanCodeUndefined, // SHORTCUT_TILE_INSPECTOR + Input::ScanCodeUndefined, // SHORTCUT_ADVANCE_TO_NEXT_TICK + Input::ScanCodeUndefined, // SHORTCUT_SCENERY_PICKER + Input::ScanCodeUndefined, // SHORTCUT_SCALE_UP + Input::ScanCodeUndefined, // SHORTCUT_SCALE_DOWN + Input::ScanCodeUndefined, // SHORTCUT_TOGGLE_CLEARANCE_CHECKS }; diff --git a/src/openrct2-ui/input/KeyboardShortcuts.h b/src/openrct2-ui/input/KeyboardShortcuts.h index d3d8cee1a5..b4a46cf66b 100644 --- a/src/openrct2-ui/input/KeyboardShortcuts.h +++ b/src/openrct2-ui/input/KeyboardShortcuts.h @@ -24,101 +24,6 @@ struct ScreenCoordsXY; -enum KeyboardShortcut -{ - SHORTCUT_CLOSE_TOP_MOST_WINDOW, - SHORTCUT_CLOSE_ALL_FLOATING_WINDOWS, - SHORTCUT_CANCEL_CONSTRUCTION_MODE, - SHORTCUT_PAUSE_GAME, - SHORTCUT_ZOOM_VIEW_OUT, - SHORTCUT_ZOOM_VIEW_IN, - SHORTCUT_ROTATE_VIEW_CLOCKWISE, - SHORTCUT_ROTATE_VIEW_ANTICLOCKWISE, - SHORTCUT_ROTATE_CONSTRUCTION_OBJECT, - SHORTCUT_UNDERGROUND_VIEW_TOGGLE, - SHORTCUT_REMOVE_BASE_LAND_TOGGLE, - SHORTCUT_REMOVE_VERTICAL_LAND_TOGGLE, - SHORTCUT_SEE_THROUGH_RIDES_TOGGLE, - SHORTCUT_SEE_THROUGH_SCENERY_TOGGLE, - SHORTCUT_INVISIBLE_SUPPORTS_TOGGLE, - SHORTCUT_INVISIBLE_PEOPLE_TOGGLE, - SHORTCUT_HEIGHT_MARKS_ON_LAND_TOGGLE, - SHORTCUT_HEIGHT_MARKS_ON_RIDE_TRACKS_TOGGLE, - SHORTCUT_HEIGHT_MARKS_ON_PATHS_TOGGLE, - SHORTCUT_ADJUST_LAND, - SHORTCUT_ADJUST_WATER, - SHORTCUT_BUILD_SCENERY, - SHORTCUT_BUILD_PATHS, - SHORTCUT_BUILD_NEW_RIDE, - SHORTCUT_SHOW_FINANCIAL_INFORMATION, - SHORTCUT_SHOW_RESEARCH_INFORMATION, - SHORTCUT_SHOW_RIDES_LIST, - SHORTCUT_SHOW_PARK_INFORMATION, - SHORTCUT_SHOW_GUEST_LIST, - SHORTCUT_SHOW_STAFF_LIST, - SHORTCUT_SHOW_RECENT_MESSAGES, - SHORTCUT_SHOW_MAP, - SHORTCUT_SCREENSHOT, - - // New - SHORTCUT_REDUCE_GAME_SPEED, - SHORTCUT_INCREASE_GAME_SPEED, - SHORTCUT_OPEN_CHEAT_WINDOW, - SHORTCUT_REMOVE_TOP_BOTTOM_TOOLBAR_TOGGLE, - SHORTCUT_SCROLL_MAP_UP, - SHORTCUT_SCROLL_MAP_LEFT, - SHORTCUT_SCROLL_MAP_DOWN, - SHORTCUT_SCROLL_MAP_RIGHT, - SHORTCUT_OPEN_CHAT_WINDOW, - SHORTCUT_QUICK_SAVE_GAME, - SHORTCUT_SHOW_OPTIONS, - SHORTCUT_MUTE_SOUND, - SHORTCUT_WINDOWED_MODE_TOGGLE, - SHORTCUT_SHOW_MULTIPLAYER, - SHORTCUT_PAINT_ORIGINAL_TOGGLE, - SHORTCUT_DEBUG_PAINT_TOGGLE, - SHORTCUT_SEE_THROUGH_PATHS_TOGGLE, - SHORTCUT_RIDE_CONSTRUCTION_TURN_LEFT, - SHORTCUT_RIDE_CONSTRUCTION_TURN_RIGHT, - SHORTCUT_RIDE_CONSTRUCTION_USE_TRACK_DEFAULT, - SHORTCUT_RIDE_CONSTRUCTION_SLOPE_DOWN, - SHORTCUT_RIDE_CONSTRUCTION_SLOPE_UP, - SHORTCUT_RIDE_CONSTRUCTION_CHAIN_LIFT_TOGGLE, - SHORTCUT_RIDE_CONSTRUCTION_BANK_LEFT, - SHORTCUT_RIDE_CONSTRUCTION_BANK_RIGHT, - SHORTCUT_RIDE_CONSTRUCTION_PREVIOUS_TRACK, - SHORTCUT_RIDE_CONSTRUCTION_NEXT_TRACK, - SHORTCUT_RIDE_CONSTRUCTION_BUILD_CURRENT, - SHORTCUT_RIDE_CONSTRUCTION_DEMOLISH_CURRENT, - SHORTCUT_LOAD_GAME, - SHORTCUT_CLEAR_SCENERY, - SHORTCUT_GRIDLINES_DISPLAY_TOGGLE, - SHORTCUT_VIEW_CLIPPING, - SHORTCUT_HIGHLIGHT_PATH_ISSUES_TOGGLE, - SHORTCUT_TILE_INSPECTOR, - SHORTCUT_ADVANCE_TO_NEXT_TICK, - SHORTCUT_SCENERY_PICKER, - SHORTCUT_SCALE_UP, - SHORTCUT_SCALE_DOWN, - SHORTCUT_INSERT_CORRUPT_ELEMENT, - SHORTCUT_COPY_ELEMENT, - SHORTCUT_PASTE_ELEMENT, - SHORTCUT_REMOVE_ELEMENT, - SHORTCUT_MOVE_ELEMENT_UP, - SHORTCUT_MOVE_ELEMENT_DOWN, - SHORTCUT_INCREASE_X_COORD, - SHORTCUT_DECREASE_X_COORD, - SHORTCUT_INCREASE_Y_COORD, - SHORTCUT_DECREASE_Y_COORD, - SHORTCUT_INCREASE_ELEM_HEIGHT, - SHORTCUT_DECREASE_ELEM_HEIGHT, - SHORTCUT_TOGGLE_CLEARANCE_CHECKS, - - SHORTCUT_COUNT, - - SHORTCUT_UNDEFINED = 0xFFFF, -}; - #include namespace OpenRCT2 @@ -127,14 +32,110 @@ namespace OpenRCT2 namespace Input { + enum class Shortcut : size_t + { + CloseTopMostWindow, + CloseAllFloatingWindows, + CancelConstructionMode, + PauseGame, + ZoomViewOut, + ZoomViewIn, + RotateViewClockwise, + RotateViewAnticlockwise, + RotateConstructionObject, + UndergroundViewToggle, + RemoveBaseLandToggle, + RemoveVerticalLandToggle, + SeeThroughRidesToggle, + SeeThroughSceneryToggle, + InvisibleSupportsToggle, + InvisiblePeopleToggle, + HeightMarksOnLandToggle, + HeightMarksOnRideTracksToggle, + HeightMarksOnPathsToggle, + AdjustLand, + AdjustWater, + BuildScenery, + BuildPaths, + BuildNewRide, + ShowFinancialInformation, + ShowResearchInformation, + ShowRidesList, + ShowParkInformation, + ShowGuestList, + ShowStaffList, + ShowRecentMessages, + ShowMap, + Screenshot, + + // New + ReduceGameSpeed, + IncreaseGameSpeed, + OpenCheatWindow, + RemoveTopBottomToolbarToggle, + ScrollMapUp, + ScrollMapLeft, + ScrollMapDown, + ScrollMapRight, + OpenChatWindow, + QuickSaveGame, + ShowOptions, + MuteSound, + WindowedModeToggle, + ShowMultiplayer, + PaintOriginalToggle, + DebugPaintToggle, + SeeThroughPathsToggle, + RideConstructionTurnLeft, + RideConstructionTurnRight, + RideConstructionUseTrackDefault, + RideConstructionSlopeDown, + RideConstructionSlopeUp, + RideConstructionChainLiftToggle, + RideConstructionBankLeft, + RideConstructionBankRight, + RideConstructionPreviousTrack, + RideConstructionNextTrack, + RideConstructionBuildCurrent, + RideConstructionDemolishCurrent, + LoadGame, + ClearScenery, + GridlinesDisplayToggle, + ViewClipping, + HighlightPathIssuesToggle, + TileInspector, + AdvanceToNextTick, + SceneryPicker, + ScaleUp, + ScaleDown, + InsertCorruptElement, + CopyElement, + PasteElement, + RemoveElement, + MoveElementUp, + MoveElementDown, + IncreaseXCoord, + DecreaseXCoord, + IncreaseYCoord, + DecreaseYCoord, + IncreaseElementHeight, + DecreaseElementHeight, + ToggleClearanceChecks, + + Count, + + Undefined = 0xFFFF, + }; + constexpr size_t ShortcutsCount = static_cast(Shortcut::Count); + class KeyboardShortcuts { private: constexpr static int32_t CURRENT_FILE_VERSION = 1; - static const uint16_t DefaultKeys[SHORTCUT_COUNT]; + static const uint16_t DefaultKeys[ShortcutsCount]; std::shared_ptr const _env; - uint16_t _keys[SHORTCUT_COUNT]; + uint16_t _keys[ShortcutsCount]; public: KeyboardShortcuts(const std::shared_ptr& env); @@ -147,24 +148,25 @@ namespace OpenRCT2 std::string GetShortcutString(int32_t shortcut) const; void Set(int32_t key); - int32_t GetFromKey(int32_t key); + Shortcut GetFromKey(int32_t key); ScreenCoordsXY GetKeyboardMapScroll(const uint8_t* keysState) const; }; + const uint16_t ScanCodeUndefined = 0xFFFF; } // namespace Input } // namespace OpenRCT2 // The current shortcut being changed. -extern uint8_t gKeyboardShortcutChangeId; +extern OpenRCT2::Input::Shortcut gKeyboardShortcutChangeId; void keyboard_shortcuts_reset(); bool keyboard_shortcuts_load(); bool keyboard_shortcuts_save(); void keyboard_shortcuts_set(int32_t key); -int32_t keyboard_shortcuts_get_from_key(int32_t key); +OpenRCT2::Input::Shortcut keyboard_shortcuts_get_from_key(int32_t key); void keyboard_shortcuts_format_string(char* buffer, size_t bufferSize, int32_t shortcut); void keyboard_shortcut_handle(int32_t key); -void keyboard_shortcut_handle_command(int32_t shortcutIndex); +void keyboard_shortcut_handle_command(OpenRCT2::Input::Shortcut shortcut); void keyboard_shortcut_format_string(char* buffer, size_t size, uint16_t shortcutKey); ScreenCoordsXY get_keyboard_map_scroll(const uint8_t* keysState); diff --git a/src/openrct2-ui/windows/ShortcutKeyChange.cpp b/src/openrct2-ui/windows/ShortcutKeyChange.cpp index 6e89ab919a..5d94323e49 100644 --- a/src/openrct2-ui/windows/ShortcutKeyChange.cpp +++ b/src/openrct2-ui/windows/ShortcutKeyChange.cpp @@ -70,13 +70,13 @@ static rct_window_event_list window_shortcut_change_events = { static rct_string_id CurrentShortcutKeyStringId{}; -rct_window* window_shortcut_change_open(int32_t selected_key, rct_string_id key_string_id) +rct_window* window_shortcut_change_open(Input::Shortcut shortcut, rct_string_id key_string_id) { // Move this to window_shortcut_change_open window_close_by_class(WC_CHANGE_KEYBOARD_SHORTCUT); // Save the item we are selecting for new window - gKeyboardShortcutChangeId = selected_key; + gKeyboardShortcutChangeId = shortcut; CurrentShortcutKeyStringId = key_string_id; rct_window* w = window_create_centred(WW, WH, &window_shortcut_change_events, WC_CHANGE_KEYBOARD_SHORTCUT, 0); diff --git a/src/openrct2-ui/windows/ShortcutKeys.cpp b/src/openrct2-ui/windows/ShortcutKeys.cpp index 1eb91eff6b..fdc0c23c18 100644 --- a/src/openrct2-ui/windows/ShortcutKeys.cpp +++ b/src/openrct2-ui/windows/ShortcutKeys.cpp @@ -22,6 +22,8 @@ static constexpr const int32_t WH = 280; static constexpr const int32_t WW_SC_MAX = 1200; static constexpr const int32_t WH_SC_MAX = 800; +using namespace OpenRCT2; + // clang-format off enum WINDOW_SHORTCUT_WIDGET_IDX { WIDX_BACKGROUND, @@ -81,133 +83,133 @@ static rct_window_event_list window_shortcut_events = { struct ShortcutStringPair { - KeyboardShortcut ShortcutId; + Input::Shortcut ShortcutId; rct_string_id StringId; }; static const ShortcutStringPair ShortcutList[] = { - { SHORTCUT_CLOSE_TOP_MOST_WINDOW, STR_SHORTCUT_CLOSE_TOP_MOST_WINDOW }, - { SHORTCUT_CLOSE_ALL_FLOATING_WINDOWS, STR_SHORTCUT_CLOSE_ALL_FLOATING_WINDOWS }, - { SHORTCUT_CANCEL_CONSTRUCTION_MODE, STR_SHORTCUT_CANCEL_CONSTRUCTION_MODE }, - { SHORTCUT_REMOVE_TOP_BOTTOM_TOOLBAR_TOGGLE, STR_SHORTCUT_TOGGLE_VISIBILITY_OF_TOOLBARS }, + { Input::Shortcut::CloseTopMostWindow, STR_SHORTCUT_CLOSE_TOP_MOST_WINDOW }, + { Input::Shortcut::CloseAllFloatingWindows, STR_SHORTCUT_CLOSE_ALL_FLOATING_WINDOWS }, + { Input::Shortcut::CancelConstructionMode, STR_SHORTCUT_CANCEL_CONSTRUCTION_MODE }, + { Input::Shortcut::RemoveTopBottomToolbarToggle, STR_SHORTCUT_TOGGLE_VISIBILITY_OF_TOOLBARS }, - { SHORTCUT_UNDEFINED, STR_NONE }, + { Input::Shortcut::Undefined, STR_NONE }, - { SHORTCUT_PAUSE_GAME, STR_SHORTCUT_PAUSE_GAME }, - { SHORTCUT_REDUCE_GAME_SPEED, STR_SHORTCUT_REDUCE_GAME_SPEED }, - { SHORTCUT_INCREASE_GAME_SPEED, STR_SHORTCUT_INCREASE_GAME_SPEED }, - { SHORTCUT_LOAD_GAME, STR_LOAD_GAME }, - { SHORTCUT_QUICK_SAVE_GAME, STR_SHORTCUT_QUICK_SAVE_GAME }, - { SHORTCUT_SHOW_OPTIONS, STR_SHORTCUT_SHOW_OPTIONS }, - { SHORTCUT_SCREENSHOT, STR_SHORTCUT_SCREENSHOT }, - { SHORTCUT_MUTE_SOUND, STR_SHORTCUT_MUTE_SOUND }, + { Input::Shortcut::PauseGame, STR_SHORTCUT_PAUSE_GAME }, + { Input::Shortcut::ReduceGameSpeed, STR_SHORTCUT_REDUCE_GAME_SPEED }, + { Input::Shortcut::IncreaseGameSpeed, STR_SHORTCUT_INCREASE_GAME_SPEED }, + { Input::Shortcut::LoadGame, STR_LOAD_GAME }, + { Input::Shortcut::QuickSaveGame, STR_SHORTCUT_QUICK_SAVE_GAME }, + { Input::Shortcut::ShowOptions, STR_SHORTCUT_SHOW_OPTIONS }, + { Input::Shortcut::Screenshot, STR_SHORTCUT_SCREENSHOT }, + { Input::Shortcut::MuteSound, STR_SHORTCUT_MUTE_SOUND }, - { SHORTCUT_UNDEFINED, STR_NONE }, + { Input::Shortcut::Undefined, STR_NONE }, - { SHORTCUT_OPEN_CHEAT_WINDOW, STR_SHORTCUT_OPEN_CHEATS_WINDOW }, - { SHORTCUT_TOGGLE_CLEARANCE_CHECKS, STR_SHORTCUT_TOGGLE_CLEARANCE_CHECKS }, + { Input::Shortcut::OpenCheatWindow, STR_SHORTCUT_OPEN_CHEATS_WINDOW }, + { Input::Shortcut::ToggleClearanceChecks, STR_SHORTCUT_TOGGLE_CLEARANCE_CHECKS }, - { SHORTCUT_UNDEFINED, STR_NONE }, + { Input::Shortcut::Undefined, STR_NONE }, - { SHORTCUT_ZOOM_VIEW_OUT, STR_SHORTCUT_ZOOM_VIEW_OUT }, - { SHORTCUT_ZOOM_VIEW_IN, STR_SHORTCUT_ZOOM_VIEW_IN }, - { SHORTCUT_ROTATE_VIEW_CLOCKWISE, STR_SHORTCUT_ROTATE_VIEW_CLOCKWISE }, - { SHORTCUT_ROTATE_VIEW_ANTICLOCKWISE, STR_SHORTCUT_ROTATE_VIEW_ANTICLOCKWISE }, - { SHORTCUT_SHOW_MAP, STR_SHORTCUT_SHOW_MAP }, + { Input::Shortcut::ZoomViewOut, STR_SHORTCUT_ZOOM_VIEW_OUT }, + { Input::Shortcut::ZoomViewIn, STR_SHORTCUT_ZOOM_VIEW_IN }, + { Input::Shortcut::RotateViewClockwise, STR_SHORTCUT_ROTATE_VIEW_CLOCKWISE }, + { Input::Shortcut::RotateViewAnticlockwise, STR_SHORTCUT_ROTATE_VIEW_ANTICLOCKWISE }, + { Input::Shortcut::ShowMap, STR_SHORTCUT_SHOW_MAP }, - { SHORTCUT_UNDEFINED, STR_NONE }, + { Input::Shortcut::Undefined, STR_NONE }, - { SHORTCUT_CLEAR_SCENERY, STR_SHORTCUT_CLEAR_SCENERY }, - { SHORTCUT_ADJUST_LAND, STR_SHORTCUT_ADJUST_LAND }, - { SHORTCUT_ADJUST_WATER, STR_SHORTCUT_ADJUST_WATER }, - { SHORTCUT_BUILD_SCENERY, STR_SHORTCUT_BUILD_SCENERY }, - { SHORTCUT_BUILD_PATHS, STR_SHORTCUT_BUILD_PATHS }, - { SHORTCUT_BUILD_NEW_RIDE, STR_SHORTCUT_BUILD_NEW_RIDE }, + { Input::Shortcut::ClearScenery, STR_SHORTCUT_CLEAR_SCENERY }, + { Input::Shortcut::AdjustLand, STR_SHORTCUT_ADJUST_LAND }, + { Input::Shortcut::AdjustWater, STR_SHORTCUT_ADJUST_WATER }, + { Input::Shortcut::BuildScenery, STR_SHORTCUT_BUILD_SCENERY }, + { Input::Shortcut::BuildPaths, STR_SHORTCUT_BUILD_PATHS }, + { Input::Shortcut::BuildNewRide, STR_SHORTCUT_BUILD_NEW_RIDE }, - { SHORTCUT_UNDEFINED, STR_NONE }, + { Input::Shortcut::Undefined, STR_NONE }, - { SHORTCUT_SHOW_FINANCIAL_INFORMATION, STR_SHORTCUT_SHOW_FINANCIAL_INFORMATION }, - { SHORTCUT_SHOW_RESEARCH_INFORMATION, STR_SHORTCUT_SHOW_RESEARCH_INFORMATION }, - { SHORTCUT_SHOW_RIDES_LIST, STR_SHORTCUT_SHOW_RIDES_LIST }, - { SHORTCUT_SHOW_PARK_INFORMATION, STR_SHORTCUT_SHOW_PARK_INFORMATION }, - { SHORTCUT_SHOW_GUEST_LIST, STR_SHORTCUT_SHOW_GUEST_LIST }, - { SHORTCUT_SHOW_STAFF_LIST, STR_SHORTCUT_SHOW_STAFF_LIST }, - { SHORTCUT_SHOW_RECENT_MESSAGES, STR_SHORTCUT_SHOW_RECENT_MESSAGES }, + { Input::Shortcut::ShowFinancialInformation, STR_SHORTCUT_SHOW_FINANCIAL_INFORMATION }, + { Input::Shortcut::ShowResearchInformation, STR_SHORTCUT_SHOW_RESEARCH_INFORMATION }, + { Input::Shortcut::ShowRidesList, STR_SHORTCUT_SHOW_RIDES_LIST }, + { Input::Shortcut::ShowParkInformation, STR_SHORTCUT_SHOW_PARK_INFORMATION }, + { Input::Shortcut::ShowGuestList, STR_SHORTCUT_SHOW_GUEST_LIST }, + { Input::Shortcut::ShowStaffList, STR_SHORTCUT_SHOW_STAFF_LIST }, + { Input::Shortcut::ShowRecentMessages, STR_SHORTCUT_SHOW_RECENT_MESSAGES }, - { SHORTCUT_UNDEFINED, STR_NONE }, + { Input::Shortcut::Undefined, STR_NONE }, - { SHORTCUT_SHOW_MULTIPLAYER, STR_SHORTCUT_SHOW_MULTIPLAYER }, - { SHORTCUT_OPEN_CHAT_WINDOW, STR_SEND_MESSAGE }, + { Input::Shortcut::ShowMultiplayer, STR_SHORTCUT_SHOW_MULTIPLAYER }, + { Input::Shortcut::OpenChatWindow, STR_SEND_MESSAGE }, - { SHORTCUT_UNDEFINED, STR_NONE }, + { Input::Shortcut::Undefined, STR_NONE }, - { SHORTCUT_UNDERGROUND_VIEW_TOGGLE, STR_SHORTCUT_UNDERGROUND_VIEW_TOGGLE }, - { SHORTCUT_REMOVE_BASE_LAND_TOGGLE, STR_SHORTCUT_REMOVE_BASE_LAND_TOGGLE }, - { SHORTCUT_REMOVE_VERTICAL_LAND_TOGGLE, STR_SHORTCUT_REMOVE_VERTICAL_LAND_TOGGLE }, - { SHORTCUT_SEE_THROUGH_RIDES_TOGGLE, STR_SHORTCUT_SEE_THROUGH_RIDES_TOGGLE }, - { SHORTCUT_SEE_THROUGH_SCENERY_TOGGLE, STR_SHORTCUT_SEE_THROUGH_SCENERY_TOGGLE }, - { SHORTCUT_SEE_THROUGH_PATHS_TOGGLE, STR_SHORTCUT_SEE_THROUGH_PATHS_TOGGLE }, - { SHORTCUT_INVISIBLE_SUPPORTS_TOGGLE, STR_SHORTCUT_INVISIBLE_SUPPORTS_TOGGLE }, - { SHORTCUT_INVISIBLE_PEOPLE_TOGGLE, STR_SHORTCUT_INVISIBLE_PEOPLE_TOGGLE }, - { SHORTCUT_HEIGHT_MARKS_ON_LAND_TOGGLE, STR_SHORTCUT_HEIGHT_MARKS_ON_LAND_TOGGLE }, - { SHORTCUT_HEIGHT_MARKS_ON_RIDE_TRACKS_TOGGLE, STR_SHORTCUT_HEIGHT_MARKS_ON_RIDE_TRACKS_TOGGLE }, - { SHORTCUT_HEIGHT_MARKS_ON_PATHS_TOGGLE, STR_SHORTCUT_HEIGHT_MARKS_ON_PATHS_TOGGLE }, - { SHORTCUT_VIEW_CLIPPING, STR_SHORTCUT_VIEW_CLIPPING }, - { SHORTCUT_HIGHLIGHT_PATH_ISSUES_TOGGLE, STR_SHORTCUT_HIGHLIGHT_PATH_ISSUES_TOGGLE }, - { SHORTCUT_GRIDLINES_DISPLAY_TOGGLE, STR_SHORTCUT_GRIDLINES_DISPLAY_TOGGLE }, + { Input::Shortcut::UndergroundViewToggle, STR_SHORTCUT_UNDERGROUND_VIEW_TOGGLE }, + { Input::Shortcut::RemoveBaseLandToggle, STR_SHORTCUT_REMOVE_BASE_LAND_TOGGLE }, + { Input::Shortcut::RemoveVerticalLandToggle, STR_SHORTCUT_REMOVE_VERTICAL_LAND_TOGGLE }, + { Input::Shortcut::SeeThroughRidesToggle, STR_SHORTCUT_SEE_THROUGH_RIDES_TOGGLE }, + { Input::Shortcut::SeeThroughSceneryToggle, STR_SHORTCUT_SEE_THROUGH_SCENERY_TOGGLE }, + { Input::Shortcut::SeeThroughPathsToggle, STR_SHORTCUT_SEE_THROUGH_PATHS_TOGGLE }, + { Input::Shortcut::InvisibleSupportsToggle, STR_SHORTCUT_INVISIBLE_SUPPORTS_TOGGLE }, + { Input::Shortcut::InvisiblePeopleToggle, STR_SHORTCUT_INVISIBLE_PEOPLE_TOGGLE }, + { Input::Shortcut::HeightMarksOnLandToggle, STR_SHORTCUT_HEIGHT_MARKS_ON_LAND_TOGGLE }, + { Input::Shortcut::HeightMarksOnRideTracksToggle, STR_SHORTCUT_HEIGHT_MARKS_ON_RIDE_TRACKS_TOGGLE }, + { Input::Shortcut::HeightMarksOnPathsToggle, STR_SHORTCUT_HEIGHT_MARKS_ON_PATHS_TOGGLE }, + { Input::Shortcut::ViewClipping, STR_SHORTCUT_VIEW_CLIPPING }, + { Input::Shortcut::HighlightPathIssuesToggle, STR_SHORTCUT_HIGHLIGHT_PATH_ISSUES_TOGGLE }, + { Input::Shortcut::GridlinesDisplayToggle, STR_SHORTCUT_GRIDLINES_DISPLAY_TOGGLE }, - { SHORTCUT_UNDEFINED, STR_NONE }, + { Input::Shortcut::Undefined, STR_NONE }, - { SHORTCUT_SCENERY_PICKER, STR_SHORTCUT_OPEN_SCENERY_PICKER }, - { SHORTCUT_ROTATE_CONSTRUCTION_OBJECT, STR_SHORTCUT_ROTATE_CONSTRUCTION_OBJECT }, - { SHORTCUT_RIDE_CONSTRUCTION_TURN_LEFT, STR_SHORTCUT_RIDE_CONSTRUCTION_TURN_LEFT }, - { SHORTCUT_RIDE_CONSTRUCTION_TURN_RIGHT, STR_SHORTCUT_RIDE_CONSTRUCTION_TURN_RIGHT }, - { SHORTCUT_RIDE_CONSTRUCTION_USE_TRACK_DEFAULT, STR_SHORTCUT_RIDE_CONSTRUCTION_USE_TRACK_DEFAULT }, - { SHORTCUT_RIDE_CONSTRUCTION_SLOPE_DOWN, STR_SHORTCUT_RIDE_CONSTRUCTION_SLOPE_DOWN }, - { SHORTCUT_RIDE_CONSTRUCTION_SLOPE_UP, STR_SHORTCUT_RIDE_CONSTRUCTION_SLOPE_UP }, - { SHORTCUT_RIDE_CONSTRUCTION_CHAIN_LIFT_TOGGLE, STR_SHORTCUT_RIDE_CONSTRUCTION_CHAIN_LIFT_TOGGLE }, - { SHORTCUT_RIDE_CONSTRUCTION_BANK_LEFT, STR_SHORTCUT_RIDE_CONSTRUCTION_BANK_LEFT }, - { SHORTCUT_RIDE_CONSTRUCTION_BANK_RIGHT, STR_SHORTCUT_RIDE_CONSTRUCTION_BANK_RIGHT }, - { SHORTCUT_RIDE_CONSTRUCTION_PREVIOUS_TRACK, STR_SHORTCUT_RIDE_CONSTRUCTION_PREVIOUS_TRACK }, - { SHORTCUT_RIDE_CONSTRUCTION_NEXT_TRACK, STR_SHORTCUT_RIDE_CONSTRUCTION_NEXT_TRACK }, - { SHORTCUT_RIDE_CONSTRUCTION_BUILD_CURRENT, STR_SHORTCUT_RIDE_CONSTRUCTION_BUILD_CURRENT }, - { SHORTCUT_RIDE_CONSTRUCTION_DEMOLISH_CURRENT, STR_SHORTCUT_RIDE_CONSTRUCTION_DEMOLISH_CURRENT }, + { Input::Shortcut::SceneryPicker, STR_SHORTCUT_OPEN_SCENERY_PICKER }, + { Input::Shortcut::RotateConstructionObject, STR_SHORTCUT_ROTATE_CONSTRUCTION_OBJECT }, + { Input::Shortcut::RideConstructionTurnLeft, STR_SHORTCUT_RIDE_CONSTRUCTION_TURN_LEFT }, + { Input::Shortcut::RideConstructionTurnRight, STR_SHORTCUT_RIDE_CONSTRUCTION_TURN_RIGHT }, + { Input::Shortcut::RideConstructionUseTrackDefault, STR_SHORTCUT_RIDE_CONSTRUCTION_USE_TRACK_DEFAULT }, + { Input::Shortcut::RideConstructionSlopeDown, STR_SHORTCUT_RIDE_CONSTRUCTION_SLOPE_DOWN }, + { Input::Shortcut::RideConstructionSlopeUp, STR_SHORTCUT_RIDE_CONSTRUCTION_SLOPE_UP }, + { Input::Shortcut::RideConstructionChainLiftToggle, STR_SHORTCUT_RIDE_CONSTRUCTION_CHAIN_LIFT_TOGGLE }, + { Input::Shortcut::RideConstructionBankLeft, STR_SHORTCUT_RIDE_CONSTRUCTION_BANK_LEFT }, + { Input::Shortcut::RideConstructionBankRight, STR_SHORTCUT_RIDE_CONSTRUCTION_BANK_RIGHT }, + { Input::Shortcut::RideConstructionPreviousTrack, STR_SHORTCUT_RIDE_CONSTRUCTION_PREVIOUS_TRACK }, + { Input::Shortcut::RideConstructionNextTrack, STR_SHORTCUT_RIDE_CONSTRUCTION_NEXT_TRACK }, + { Input::Shortcut::RideConstructionBuildCurrent, STR_SHORTCUT_RIDE_CONSTRUCTION_BUILD_CURRENT }, + { Input::Shortcut::RideConstructionDemolishCurrent, STR_SHORTCUT_RIDE_CONSTRUCTION_DEMOLISH_CURRENT }, - { SHORTCUT_UNDEFINED, STR_NONE }, + { Input::Shortcut::Undefined, STR_NONE }, - { SHORTCUT_SCROLL_MAP_UP, STR_SHORTCUT_SCROLL_MAP_UP }, - { SHORTCUT_SCROLL_MAP_LEFT, STR_SHORTCUT_SCROLL_MAP_LEFT }, - { SHORTCUT_SCROLL_MAP_DOWN, STR_SHORTCUT_SCROLL_MAP_DOWN }, - { SHORTCUT_SCROLL_MAP_RIGHT, STR_SHORTCUT_SCROLL_MAP_RIGHT }, + { Input::Shortcut::ScrollMapUp, STR_SHORTCUT_SCROLL_MAP_UP }, + { Input::Shortcut::ScrollMapLeft, STR_SHORTCUT_SCROLL_MAP_LEFT }, + { Input::Shortcut::ScrollMapDown, STR_SHORTCUT_SCROLL_MAP_DOWN }, + { Input::Shortcut::ScrollMapRight, STR_SHORTCUT_SCROLL_MAP_RIGHT }, - { SHORTCUT_UNDEFINED, STR_NONE }, + { Input::Shortcut::Undefined, STR_NONE }, - { SHORTCUT_WINDOWED_MODE_TOGGLE, STR_SHORTCUT_WINDOWED_MODE_TOGGLE }, - { SHORTCUT_SCALE_UP, STR_SHORTCUT_SCALE_UP }, - { SHORTCUT_SCALE_DOWN, STR_SHORTCUT_SCALE_DOWN }, + { Input::Shortcut::WindowedModeToggle, STR_SHORTCUT_WINDOWED_MODE_TOGGLE }, + { Input::Shortcut::ScaleUp, STR_SHORTCUT_SCALE_UP }, + { Input::Shortcut::ScaleDown, STR_SHORTCUT_SCALE_DOWN }, - { SHORTCUT_UNDEFINED, STR_NONE }, + { Input::Shortcut::Undefined, STR_NONE }, - { SHORTCUT_TILE_INSPECTOR, STR_SHORTCUT_OPEN_TILE_INSPECTOR }, - { SHORTCUT_INSERT_CORRUPT_ELEMENT, STR_SHORTCUT_INSERT_CORRPUT_ELEMENT }, - { SHORTCUT_COPY_ELEMENT, STR_SHORTCUT_COPY_ELEMENT }, - { SHORTCUT_PASTE_ELEMENT, STR_SHORTCUT_PASTE_ELEMENT }, - { SHORTCUT_REMOVE_ELEMENT, STR_SHORTCUT_REMOVE_ELEMENT }, - { SHORTCUT_MOVE_ELEMENT_UP, STR_SHORTCUT_MOVE_ELEMENT_UP }, - { SHORTCUT_MOVE_ELEMENT_DOWN, STR_SHORTCUT_MOVE_ELEMENT_DOWN }, - { SHORTCUT_INCREASE_X_COORD, STR_SHORTCUT_INCREASE_X_COORD }, - { SHORTCUT_DECREASE_X_COORD, STR_SHORTCUT_DECREASE_X_COORD }, - { SHORTCUT_INCREASE_Y_COORD, STR_SHORTCUT_INCREASE_Y_COORD }, - { SHORTCUT_DECREASE_Y_COORD, STR_SHORTCUT_DECREASE_Y_COORD }, - { SHORTCUT_INCREASE_ELEM_HEIGHT, STR_SHORTCUT_INCREASE_ELEM_HEIGHT }, - { SHORTCUT_DECREASE_ELEM_HEIGHT, STR_SHORTCUT_DECREASE_ELEM_HEIGHT }, + { Input::Shortcut::TileInspector, STR_SHORTCUT_OPEN_TILE_INSPECTOR }, + { Input::Shortcut::InsertCorruptElement, STR_SHORTCUT_INSERT_CORRPUT_ELEMENT }, + { Input::Shortcut::CopyElement, STR_SHORTCUT_COPY_ELEMENT }, + { Input::Shortcut::PasteElement, STR_SHORTCUT_PASTE_ELEMENT }, + { Input::Shortcut::RemoveElement, STR_SHORTCUT_REMOVE_ELEMENT }, + { Input::Shortcut::MoveElementUp, STR_SHORTCUT_MOVE_ELEMENT_UP }, + { Input::Shortcut::MoveElementDown, STR_SHORTCUT_MOVE_ELEMENT_DOWN }, + { Input::Shortcut::IncreaseXCoord, STR_SHORTCUT_INCREASE_X_COORD }, + { Input::Shortcut::DecreaseXCoord, STR_SHORTCUT_DECREASE_X_COORD }, + { Input::Shortcut::IncreaseYCoord, STR_SHORTCUT_INCREASE_Y_COORD }, + { Input::Shortcut::DecreaseYCoord, STR_SHORTCUT_DECREASE_Y_COORD }, + { Input::Shortcut::IncreaseElementHeight, STR_SHORTCUT_INCREASE_ELEM_HEIGHT }, + { Input::Shortcut::DecreaseElementHeight, STR_SHORTCUT_DECREASE_ELEM_HEIGHT }, - { SHORTCUT_UNDEFINED, STR_NONE }, + { Input::Shortcut::Undefined, STR_NONE }, - { SHORTCUT_ADVANCE_TO_NEXT_TICK, STR_ADVANCE_TO_NEXT_TICK }, - { SHORTCUT_PAINT_ORIGINAL_TOGGLE, STR_SHORTCUT_PAINT_ORIGINAL }, - { SHORTCUT_DEBUG_PAINT_TOGGLE, STR_SHORTCUT_DEBUG_PAINT_TOGGLE }, + { Input::Shortcut::AdvanceToNextTick, STR_ADVANCE_TO_NEXT_TICK }, + { Input::Shortcut::PaintOriginalToggle, STR_SHORTCUT_PAINT_ORIGINAL }, + { Input::Shortcut::DebugPaintToggle, STR_SHORTCUT_DEBUG_PAINT_TOGGLE }, }; // clang-format on @@ -302,7 +304,7 @@ static void window_shortcut_scrollmousedown(rct_window* w, int32_t scrollIndex, return; // Is this a separator? - if (ShortcutList[selected_item].ShortcutId == SHORTCUT_UNDEFINED) + if (ShortcutList[selected_item].ShortcutId == Input::Shortcut::Undefined) return; auto& shortcut = ShortcutList[selected_item]; @@ -352,7 +354,7 @@ static void window_shortcut_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, i } // Is this a separator? - if (ShortcutList[i].ShortcutId == SHORTCUT_UNDEFINED) + if (ShortcutList[i].ShortcutId == Input::Shortcut::Undefined) { const int32_t top = y + (SCROLLABLE_ROW_HEIGHT / 2) - 1; gfx_fill_rect(dpi, { { 0, top }, { scrollWidth, top } }, ColourMapA[w->colours[0]].mid_dark); @@ -374,7 +376,7 @@ static void window_shortcut_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, i gfx_draw_string_left_clipped(dpi, format, gCommonFormatArgs, COLOUR_BLACK, { 0, y - 1 }, bindingOffset); char keybinding[128]; - keyboard_shortcuts_format_string(keybinding, 128, ShortcutList[i].ShortcutId); + keyboard_shortcuts_format_string(keybinding, 128, static_cast(ShortcutList[i].ShortcutId)); if (strlen(keybinding) > 0) { diff --git a/src/openrct2-ui/windows/Window.h b/src/openrct2-ui/windows/Window.h index 3ccf830502..aabcd3521e 100644 --- a/src/openrct2-ui/windows/Window.h +++ b/src/openrct2-ui/windows/Window.h @@ -9,12 +9,14 @@ #pragma once +#include #include #include #include #include #include +using namespace OpenRCT2; using loadsave_callback = void (*)(int32_t result, const utf8* path); using scenarioselect_callback = void (*)(const utf8* path); struct Peep; @@ -62,7 +64,7 @@ rct_window* window_save_prompt_open(); rct_window* window_server_list_open(); rct_window* window_server_start_open(); #endif -rct_window* window_shortcut_change_open(int32_t selected_key, rct_string_id key_string_id); +rct_window* window_shortcut_change_open(Input::Shortcut shortcut, rct_string_id key_string_id); rct_window* window_shortcut_keys_open(); rct_window* window_staff_list_open(); rct_window* window_staff_open(Peep* peep);