1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-15 11:03:00 +01:00

Rename shortcut IDs and order groups

This commit is contained in:
Ted John
2021-01-13 21:09:18 +00:00
parent afb4500c49
commit 18c3587d63
2 changed files with 105 additions and 82 deletions

View File

@@ -141,16 +141,59 @@ namespace OpenRCT2::Ui
namespace ShortcutId
{
// original
constexpr const char* InterfaceCloseTop = "interface0.close_top";
constexpr const char* InterfaceCloseAll = "interface0.close_all";
constexpr const char* InterfaceCancelConstruction = "interface0.cancel_construction";
constexpr const char* InterfacePause = "interface1.pause";
constexpr const char* InterfaceZoomOut = "interface3.zoom_out";
constexpr const char* InterfaceZoomIn = "interface3.zoom_in";
constexpr const char* InterfaceRotateClockwise = "interface3.rotate_clockwise";
constexpr const char* InterfaceRotateAnticlockwise = "interface3.rotate_anticlockwise";
constexpr const char* InterfaceRotateConstruction = "interface6.rotate_construction";
// 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";
// 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";
// 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";
// 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";
// View
constexpr const char* ViewToggleUnderground = "view.show_underground";
constexpr const char* ViewToggleBaseLand = "view.hide_base_land";
constexpr const char* ViewToggleVerticalLand = "view.hide_vertical_land";
@@ -161,38 +204,12 @@ namespace OpenRCT2::Ui
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* InterfaceOpenLand = "interface4.adjust_land";
constexpr const char* InterfaceOpenWater = "interface4.adjust_water";
constexpr const char* InterfaceOpenScenery = "interface4.build_scenery";
constexpr const char* InterfaceOpenFootpaths = "interface4.build_footpaths";
constexpr const char* InterfaceOpenNewRide = "interface4.build_new_ride";
constexpr const char* InterfaceOpenFinances = "interface5.show_finances";
constexpr const char* InterfaceOpenResearch = "interface5.show_research";
constexpr const char* InterfaceOpenRides = "interface5.show_rides";
constexpr const char* InterfaceOpenPark = "interface5.show_park";
constexpr const char* InterfaceOpenGuests = "interface5.show_guests";
constexpr const char* InterfaceOpenStaff = "interface5.show_staff";
constexpr const char* InterfaceOpenMessages = "interface5.show_messages";
constexpr const char* InterfaceOpenMap = "interface3.show_map";
constexpr const char* InterfaceScreenshot = "interface1.screenshot";
// new
constexpr const char* InterfaceDecreaseSpeed = "interface1.decrease_speed";
constexpr const char* InterfaceIncreaseSpeed = "interface1.increase_speed";
constexpr const char* InterfaceOpenCheats = "interface2.open_cheats";
constexpr const char* InterfaceToggleToolbars = "interface0.toggle_toolbars";
constexpr const char* ScrollUp = "scroll.up";
constexpr const char* ScrollLeft = "scroll.left";
constexpr const char* ScrollRight = "scroll.right";
constexpr const char* ScrollDown = "scroll.down";
constexpr const char* MultiplayerChat = "multiplayer.chat";
constexpr const char* InterfaceSaveGame = "interface1.save_game";
constexpr const char* InterfaceShowOptions = "interface1.show_options";
constexpr const char* InterfaceMute = "interface1.mute";
constexpr const char* ScaleToggleWindowMode = "scale.toggle_window_mode";
constexpr const char* MultiplayerShow = "multiplayer.show";
// paint original
constexpr const char* DebugTogglePaintDebugWindow = "debug.toggle_paint_debug_window";
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";
// 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";
@@ -205,16 +222,8 @@ namespace OpenRCT2::Ui
constexpr const char* WindowRideConstructionNext = "window.rideconstruction.next";
constexpr const char* WindowRideConstructionBuild = "window.rideconstruction.build";
constexpr const char* WindowRideConstructionDemolish = "window.rideconstruction.demolish";
constexpr const char* InterfaceLoadGame = "interface1.load_game";
constexpr const char* InterfaceClearScenery = "interface4.clear_scenery";
constexpr const char* ViewToggleGridlines = "view.show_gridlines";
constexpr const char* ViewToggleCutAway = "view.toggle_cut_away";
constexpr const char* ViewToogleFootpathIssues = "view.highlight_path_issues";
constexpr const char* InterfaceOpenTileInspector = "tileinspector.open";
constexpr const char* DebugAdvanceTick = "debug.advance_tick";
constexpr const char* InterfaceSceneryPicker = "interface6.scenery_picker";
constexpr const char* InterfaceScaleIncrease = "scale.increase";
constexpr const char* InterfaceScaleDecrease = "scale.decrease";
// 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";
@@ -227,9 +236,11 @@ namespace OpenRCT2::Ui
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 const char* InterfaceDisableClearance = "interface2.disable_clearance";
// even newer
// Debug
constexpr const char* DebugToggleConsole = "debug.console";
constexpr const char* DebugTogglePaintDebugWindow = "debug.toggle_paint_debug_window";
constexpr const char* DebugAdvanceTick = "debug.advance_tick";
} // namespace ShortcutId
} // namespace OpenRCT2::Ui

View File

@@ -135,7 +135,6 @@ class ShortcutKeysWindow final : public Window
private:
struct ShortcutStringPair
{
size_t ShortcutIndex{};
std::string ShortcutId;
rct_string_id StringId = STR_NONE;
std::string CustomString;
@@ -328,46 +327,59 @@ private:
void InitialiseList()
{
auto groupFilter = _tabs[_currentTabIndex].IdGroup;
// Get shortcuts and sort by group
auto shortcuts = GetShortcutsForCurrentTab();
std::stable_sort(shortcuts.begin(), shortcuts.end(), [](const RegisteredShortcut* a, const RegisteredShortcut* b) {
return a->GetGroup().compare(b->GetGroup()) < 0;
});
// Create list items with a separator between each group
_list.clear();
size_t index = 0;
std::string group;
auto& shortcutManager = GetShortcutManager();
for (auto& shortcut : shortcutManager.Shortcuts)
for (const auto* shortcut : shortcuts)
{
if (IsInCurrentTab(shortcut))
if (group.empty())
{
if (group.empty())
{
group = shortcut.GetGroup();
}
else
{
auto groupName = shortcut.GetGroup();
if (group != groupName)
{
// Add separator
group = groupName;
_list.emplace_back();
}
}
ShortcutStringPair ssp;
ssp.ShortcutIndex = index;
ssp.ShortcutId = shortcut.Id;
ssp.StringId = shortcut.LocalisedName;
ssp.CustomString = shortcut.CustomName;
ssp.Binding = FormatKeyChordsString(shortcut);
_list.push_back(std::move(ssp));
index++;
group = shortcut->GetGroup();
}
else
{
auto groupName = shortcut->GetGroup();
if (group != groupName)
{
// Add separator
group = groupName;
_list.emplace_back();
}
}
ShortcutStringPair ssp;
ssp.ShortcutId = shortcut->Id;
ssp.StringId = shortcut->LocalisedName;
ssp.CustomString = shortcut->CustomName;
ssp.Binding = FormatKeyChordsString(*shortcut);
_list.push_back(std::move(ssp));
index++;
}
Invalidate();
}
std::vector<const RegisteredShortcut*> GetShortcutsForCurrentTab()
{
std::vector<const RegisteredShortcut*> result;
auto& shortcutManager = GetShortcutManager();
for (const auto& shortcut : shortcutManager.Shortcuts)
{
if (IsInCurrentTab(shortcut))
{
result.push_back(&shortcut);
}
}
return result;
}
void InitialiseTabs()
{
_tabs.clear();