From 52e5d48501d8ed87eec3bb24c8b473d0564b3648 Mon Sep 17 00:00:00 2001 From: Ted John Date: Sun, 6 Mar 2022 15:04:11 +0000 Subject: [PATCH] Update shortcuts and toolbar menu --- data/language/en-GB.txt | 4 ++ src/openrct2-ui/input/ShortcutIds.h | 7 +- src/openrct2-ui/input/ShortcutManager.cpp | 2 +- src/openrct2-ui/input/Shortcuts.cpp | 39 ++-------- src/openrct2-ui/windows/TopToolbar.cpp | 86 +++++++++++++---------- src/openrct2/localisation/StringIds.h | 4 ++ 6 files changed, 69 insertions(+), 73 deletions(-) diff --git a/data/language/en-GB.txt b/data/language/en-GB.txt index 96b4f893d8..356f3c2e3c 100644 --- a/data/language/en-GB.txt +++ b/data/language/en-GB.txt @@ -3672,6 +3672,10 @@ STR_6480 :Transparency Options STR_6481 :Invisible Vehicles STR_6482 :See-Through Supports STR_6483 :Open transparency options +STR_6484 :See-through vehicles toggle +STR_6485 :See-through trees toggle +STR_6486 :Invisible guests toggle +STR_6487 :Invisible staff toggle ############# # Scenarios # diff --git a/src/openrct2-ui/input/ShortcutIds.h b/src/openrct2-ui/input/ShortcutIds.h index eca4834a53..6f7693823a 100644 --- a/src/openrct2-ui/input/ShortcutIds.h +++ b/src/openrct2-ui/input/ShortcutIds.h @@ -75,13 +75,16 @@ namespace OpenRCT2::Ui::ShortcutId constexpr std::string_view ViewToggleBaseLand = "view.toggle.hide_base_land"; constexpr std::string_view ViewToggleVerticalLand = "view.toggle.hide_vertical_land"; constexpr std::string_view ViewToggleRides = "view.toggle.transparent_rides"; + constexpr std::string_view ViewToggleVehicles = "view.toggle.transparent_vehicles"; + constexpr std::string_view ViewToggleTrees = "view.toggle.transparent_trees"; constexpr std::string_view ViewToggleScenery = "view.toggle.transparent_scenery"; + constexpr std::string_view ViewToggleFootpaths = "view.toggle.transparent_footpaths"; constexpr std::string_view ViewToggleSupports = "view.toggle.hide_supports"; - constexpr std::string_view ViewTogglePeeps = "view.toggle.hide_peeps"; + constexpr std::string_view ViewToggleGuests = "view.toggle.hide_guests"; + constexpr std::string_view ViewToggleStaff = "view.toggle.hide_staff"; constexpr std::string_view ViewToggleLandHeightMarkers = "view.toggle.show_land_height"; constexpr std::string_view ViewToggleTrackHeightMarkers = "view.toggle.show_track_height"; constexpr std::string_view ViewToggleFootpathHeightMarkers = "view.toggle.show_footpath_height"; - constexpr std::string_view ViewToggleFootpaths = "view.toggle.transparent_footpaths"; constexpr std::string_view ViewToggleGridlines = "view.toggle.show_gridlines"; constexpr std::string_view ViewToggleCutAway = "view.toggle.toggle_cut_away"; constexpr std::string_view ViewToogleFootpathIssues = "view.toggle.highlight_path_issues"; diff --git a/src/openrct2-ui/input/ShortcutManager.cpp b/src/openrct2-ui/input/ShortcutManager.cpp index 2a3ccbcc81..07dcc15a13 100644 --- a/src/openrct2-ui/input/ShortcutManager.cpp +++ b/src/openrct2-ui/input/ShortcutManager.cpp @@ -370,7 +370,7 @@ std::string_view ShortcutManager::GetLegacyShortcutId(size_t index) ShortcutId::ViewToggleRides, ShortcutId::ViewToggleScenery, ShortcutId::ViewToggleSupports, - ShortcutId::ViewTogglePeeps, + ShortcutId::ViewToggleGuests, ShortcutId::ViewToggleLandHeightMarkers, ShortcutId::ViewToggleTrackHeightMarkers, ShortcutId::ViewToggleFootpathHeightMarkers, diff --git a/src/openrct2-ui/input/Shortcuts.cpp b/src/openrct2-ui/input/Shortcuts.cpp index 0ef55df415..2655ae0098 100644 --- a/src/openrct2-ui/input/Shortcuts.cpp +++ b/src/openrct2-ui/input/Shortcuts.cpp @@ -630,38 +630,6 @@ static void ShortcutToggleConsole() } } -static void ShortcutToggleInvisiblePeeps() -{ - if (gScreenFlags & SCREEN_FLAGS_TITLE_DEMO) - return; - - auto w = window_get_main(); - if (w != nullptr) - { - if (w->viewport->flags & VIEWPORT_FLAG_HIDE_GUESTS || w->viewport->flags & VIEWPORT_FLAG_HIDE_STAFF) - w->viewport->flags = w->viewport->flags & ~(VIEWPORT_FLAG_HIDE_GUESTS | VIEWPORT_FLAG_HIDE_STAFF); - else - w->viewport->flags |= (VIEWPORT_FLAG_HIDE_GUESTS | VIEWPORT_FLAG_HIDE_STAFF); - w->Invalidate(); - } -} - -static void ShortcutToggleInvisibleSupports() -{ - if (gScreenFlags & SCREEN_FLAGS_TITLE_DEMO) - return; - - auto w = window_get_main(); - if (w != nullptr) - { - if ((w->viewport->flags & VIEWPORT_FLAG_HIDE_SUPPORTS) || (w->viewport->flags & VIEWPORT_FLAG_INVISIBLE_SUPPORTS)) - w->viewport->flags = w->viewport->flags & ~(VIEWPORT_FLAG_HIDE_SUPPORTS | VIEWPORT_FLAG_INVISIBLE_SUPPORTS); - else - w->viewport->flags |= (VIEWPORT_FLAG_HIDE_SUPPORTS | VIEWPORT_FLAG_INVISIBLE_SUPPORTS); - w->Invalidate(); - } -} - static void ShortcutConstructionTurnLeft() { if (gScreenFlags & SCREEN_FLAGS_TITLE_DEMO) @@ -886,10 +854,13 @@ void ShortcutManager::RegisterDefaultShortcuts() RegisterShortcut(ShortcutId::ViewToggleBaseLand, STR_SHORTCUT_REMOVE_BASE_LAND_TOGGLE, "H", []() { ToggleViewFlag(VIEWPORT_FLAG_HIDE_BASE); }); RegisterShortcut(ShortcutId::ViewToggleVerticalLand, STR_SHORTCUT_REMOVE_VERTICAL_LAND_TOGGLE, "V", []() { ToggleViewFlag(VIEWPORT_FLAG_HIDE_VERTICAL); }); RegisterShortcut(ShortcutId::ViewToggleRides, STR_SHORTCUT_SEE_THROUGH_RIDES_TOGGLE, "3", []() { ToggleViewFlag(VIEWPORT_FLAG_HIDE_RIDES); }); + RegisterShortcut(ShortcutId::ViewToggleVehicles, STR_SHORTCUT_SEE_THROUGH_VEHICLES_TOGGLE, []() { ToggleViewFlag(VIEWPORT_FLAG_HIDE_VEHICLES); }); + RegisterShortcut(ShortcutId::ViewToggleTrees, STR_SHORTCUT_SEE_THROUGH_TREES_TOGGLE, []() { ToggleViewFlag(VIEWPORT_FLAG_HIDE_TREES); }); RegisterShortcut(ShortcutId::ViewToggleScenery, STR_SHORTCUT_SEE_THROUGH_SCENERY_TOGGLE, "4", []() { ToggleViewFlag(VIEWPORT_FLAG_HIDE_SCENERY); }); RegisterShortcut(ShortcutId::ViewToggleFootpaths, STR_SHORTCUT_SEE_THROUGH_PATHS_TOGGLE, []() { ToggleViewFlag(VIEWPORT_FLAG_HIDE_PATHS); }); - RegisterShortcut(ShortcutId::ViewToggleSupports, STR_SHORTCUT_INVISIBLE_SUPPORTS_TOGGLE, "5", []() { ShortcutToggleInvisibleSupports(); }); - RegisterShortcut(ShortcutId::ViewTogglePeeps, STR_SHORTCUT_INVISIBLE_PEOPLE_TOGGLE, "6", []() { ShortcutToggleInvisiblePeeps(); }); + RegisterShortcut(ShortcutId::ViewToggleSupports, STR_SHORTCUT_INVISIBLE_SUPPORTS_TOGGLE, "5", []() { ToggleViewFlag(VIEWPORT_FLAG_HIDE_SUPPORTS); }); + RegisterShortcut(ShortcutId::ViewToggleGuests, STR_SHORTCUT_INVISIBLE_GUESTS_TOGGLE, "6", []() { ToggleViewFlag(VIEWPORT_FLAG_HIDE_GUESTS); }); + RegisterShortcut(ShortcutId::ViewToggleStaff, STR_SHORTCUT_INVISIBLE_STAFF_TOGGLE, []() { ToggleViewFlag(VIEWPORT_FLAG_HIDE_STAFF); }); RegisterShortcut(ShortcutId::ViewToggleLandHeightMarkers, STR_SHORTCUT_HEIGHT_MARKS_ON_LAND_TOGGLE, "8", []() { ToggleViewFlag(VIEWPORT_FLAG_LAND_HEIGHTS); }); RegisterShortcut(ShortcutId::ViewToggleTrackHeightMarkers, STR_SHORTCUT_HEIGHT_MARKS_ON_RIDE_TRACKS_TOGGLE, "9", []() { ToggleViewFlag(VIEWPORT_FLAG_TRACK_HEIGHTS); }); RegisterShortcut(ShortcutId::ViewToggleFootpathHeightMarkers, STR_SHORTCUT_HEIGHT_MARKS_ON_PATHS_TOGGLE, "0", []() { ToggleViewFlag(VIEWPORT_FLAG_PATH_HEIGHTS); }); diff --git a/src/openrct2-ui/windows/TopToolbar.cpp b/src/openrct2-ui/windows/TopToolbar.cpp index fd153d0b1d..b416783f1d 100644 --- a/src/openrct2-ui/windows/TopToolbar.cpp +++ b/src/openrct2-ui/windows/TopToolbar.cpp @@ -136,20 +136,23 @@ enum TopToolbarViewMenuDdidx DDIDX_HIDE_BASE = 2, DDIDX_HIDE_VERTICAL = 3, // separator - DDIDX_SEETHROUGH_RIDES = 5, - DDIDX_SEETHROUGH_SCENERY = 6, - DDIDX_SEETHROUGH_PATHS = 7, - DDIDX_INVISIBLE_SUPPORTS = 8, - DDIDX_INVISIBLE_PEEPS = 9, + DDIDX_HIDE_RIDES = 5, + DDIDX_HIDE_VEHICLES = 6, + DDIDX_HIDE_TREES = 7, + DDIDX_HIDE_SCENERY = 8, + DDIDX_HIDE_PATHS = 9, + DDIDX_HIDE_SUPPORTS = 10, + DDIDX_HIDE_GUESTS = 11, + DDIDX_HIDE_STAFF = 12, // separator - DDIDX_LAND_HEIGHTS = 11, - DDIDX_TRACK_HEIGHTS = 12, - DDIDX_PATH_HEIGHTS = 13, + DDIDX_LAND_HEIGHTS = 14, + DDIDX_TRACK_HEIGHTS = 15, + DDIDX_PATH_HEIGHTS = 16, // separator - DDIDX_VIEW_CLIPPING = 15, - DDIDX_HIGHLIGHT_PATH_ISSUES = 16, + DDIDX_VIEW_CLIPPING = 18, + DDIDX_HIGHLIGHT_PATH_ISSUES = 19, // separator - DDIDX_TRANSPARENCY = 18, + DDIDX_TRANSPARENCY = 21, TOP_TOOLBAR_VIEW_MENU_COUNT, }; @@ -3625,11 +3628,14 @@ static void TopToolbarInitViewMenu(rct_window* w, rct_widget* widget) ToggleOption(DDIDX_HIDE_BASE, STR_REMOVE_BASE_LAND), ToggleOption(DDIDX_HIDE_VERTICAL, STR_REMOVE_VERTICAL_FACES), Separator(), - ToggleOption(DDIDX_SEETHROUGH_RIDES, STR_SEE_THROUGH_RIDES), - ToggleOption(DDIDX_SEETHROUGH_SCENERY, STR_SEE_THROUGH_SCENERY), - ToggleOption(DDIDX_SEETHROUGH_PATHS, STR_SEE_THROUGH_PATHS), - ToggleOption(DDIDX_INVISIBLE_SUPPORTS, STR_INVISIBLE_SUPPORTS), - ToggleOption(DDIDX_INVISIBLE_PEEPS, STR_INVISIBLE_PEOPLE), + ToggleOption(DDIDX_HIDE_RIDES, STR_SEE_THROUGH_RIDES), + ToggleOption(DDIDX_HIDE_VEHICLES, STR_SEE_THROUGH_VEHICLES), + ToggleOption(DDIDX_HIDE_TREES, STR_SEE_THROUGH_TREES), + ToggleOption(DDIDX_HIDE_SCENERY, STR_SEE_THROUGH_SCENERY), + ToggleOption(DDIDX_HIDE_PATHS, STR_SEE_THROUGH_PATHS), + ToggleOption(DDIDX_HIDE_SUPPORTS, STR_SEE_THROUGH_SUPPORTS), + ToggleOption(DDIDX_HIDE_GUESTS, STR_INVISIBLE_GUESTS), + ToggleOption(DDIDX_HIDE_STAFF, STR_INVISIBLE_STAFF), Separator(), ToggleOption(DDIDX_LAND_HEIGHTS, STR_HEIGHT_MARKS_ON_LAND), ToggleOption(DDIDX_TRACK_HEIGHTS, STR_HEIGHT_MARKS_ON_RIDE_TRACKS), @@ -3660,15 +3666,21 @@ static void TopToolbarInitViewMenu(rct_window* w, rct_widget* widget) if (mainViewport->flags & VIEWPORT_FLAG_HIDE_VERTICAL) Dropdown::SetChecked(DDIDX_HIDE_VERTICAL, true); if (mainViewport->flags & VIEWPORT_FLAG_HIDE_RIDES) - Dropdown::SetChecked(DDIDX_SEETHROUGH_RIDES, true); + Dropdown::SetChecked(DDIDX_HIDE_RIDES, true); + if (mainViewport->flags & VIEWPORT_FLAG_HIDE_VEHICLES) + Dropdown::SetChecked(DDIDX_HIDE_VEHICLES, true); + if (mainViewport->flags & VIEWPORT_FLAG_HIDE_TREES) + Dropdown::SetChecked(DDIDX_HIDE_TREES, true); if (mainViewport->flags & VIEWPORT_FLAG_HIDE_SCENERY) - Dropdown::SetChecked(DDIDX_SEETHROUGH_SCENERY, true); + Dropdown::SetChecked(DDIDX_HIDE_SCENERY, true); if (mainViewport->flags & VIEWPORT_FLAG_HIDE_PATHS) - Dropdown::SetChecked(DDIDX_SEETHROUGH_PATHS, true); + Dropdown::SetChecked(DDIDX_HIDE_PATHS, true); if (mainViewport->flags & VIEWPORT_FLAG_HIDE_SUPPORTS) - Dropdown::SetChecked(DDIDX_INVISIBLE_SUPPORTS, true); - if (mainViewport->flags & VIEWPORT_FLAG_HIDE_GUESTS || mainViewport->flags & VIEWPORT_FLAG_HIDE_STAFF) - Dropdown::SetChecked(DDIDX_INVISIBLE_PEEPS, true); + Dropdown::SetChecked(DDIDX_HIDE_SUPPORTS, true); + if (mainViewport->flags & VIEWPORT_FLAG_HIDE_GUESTS) + Dropdown::SetChecked(DDIDX_HIDE_GUESTS, true); + if (mainViewport->flags & VIEWPORT_FLAG_HIDE_STAFF) + Dropdown::SetChecked(DDIDX_HIDE_STAFF, true); if (mainViewport->flags & VIEWPORT_FLAG_LAND_HEIGHTS) Dropdown::SetChecked(DDIDX_LAND_HEIGHTS, true); if (mainViewport->flags & VIEWPORT_FLAG_TRACK_HEIGHTS) @@ -3713,27 +3725,29 @@ static void TopToolbarViewMenuDropdown(int16_t dropdownIndex) case DDIDX_HIDE_VERTICAL: w->viewport->flags ^= VIEWPORT_FLAG_HIDE_VERTICAL; break; - case DDIDX_SEETHROUGH_RIDES: + case DDIDX_HIDE_RIDES: w->viewport->flags ^= VIEWPORT_FLAG_HIDE_RIDES; break; - case DDIDX_SEETHROUGH_SCENERY: + case DDIDX_HIDE_VEHICLES: + w->viewport->flags ^= VIEWPORT_FLAG_HIDE_VEHICLES; + break; + case DDIDX_HIDE_TREES: + w->viewport->flags ^= VIEWPORT_FLAG_HIDE_TREES; + break; + case DDIDX_HIDE_SCENERY: w->viewport->flags ^= VIEWPORT_FLAG_HIDE_SCENERY; break; - case DDIDX_SEETHROUGH_PATHS: + case DDIDX_HIDE_PATHS: w->viewport->flags ^= VIEWPORT_FLAG_HIDE_PATHS; break; - case DDIDX_INVISIBLE_SUPPORTS: - if (w->viewport->flags & VIEWPORT_FLAG_HIDE_SUPPORTS) - w->viewport->flags = w->viewport->flags - & ~(VIEWPORT_FLAG_HIDE_SUPPORTS | VIEWPORT_FLAG_INVISIBLE_SUPPORTS); - else - w->viewport->flags |= (VIEWPORT_FLAG_HIDE_SUPPORTS | VIEWPORT_FLAG_INVISIBLE_SUPPORTS); + case DDIDX_HIDE_SUPPORTS: + w->viewport->flags ^= VIEWPORT_FLAG_HIDE_SUPPORTS; break; - case DDIDX_INVISIBLE_PEEPS: - if (w->viewport->flags & VIEWPORT_FLAG_HIDE_GUESTS || w->viewport->flags & VIEWPORT_FLAG_HIDE_STAFF) - w->viewport->flags = w->viewport->flags & ~(VIEWPORT_FLAG_HIDE_GUESTS | VIEWPORT_FLAG_HIDE_STAFF); - else - w->viewport->flags |= (VIEWPORT_FLAG_HIDE_GUESTS | VIEWPORT_FLAG_HIDE_STAFF); + case DDIDX_HIDE_GUESTS: + w->viewport->flags ^= VIEWPORT_FLAG_HIDE_GUESTS; + break; + case DDIDX_HIDE_STAFF: + w->viewport->flags ^= VIEWPORT_FLAG_HIDE_STAFF; break; case DDIDX_LAND_HEIGHTS: w->viewport->flags ^= VIEWPORT_FLAG_LAND_HEIGHTS; diff --git a/src/openrct2/localisation/StringIds.h b/src/openrct2/localisation/StringIds.h index 292b8cb607..faaaafccb4 100644 --- a/src/openrct2/localisation/StringIds.h +++ b/src/openrct2/localisation/StringIds.h @@ -3941,6 +3941,10 @@ enum : uint16_t STR_INVISIBLE_VEHICLES = 6481, STR_SEE_THROUGH_SUPPORTS = 6482, STR_SHORTCUT_OPEN_TRANSPARENCY_OPTIONS = 6483, + STR_SHORTCUT_SEE_THROUGH_VEHICLES_TOGGLE = 6484, + STR_SHORTCUT_SEE_THROUGH_TREES_TOGGLE = 6485, + STR_SHORTCUT_INVISIBLE_GUESTS_TOGGLE = 6486, + STR_SHORTCUT_INVISIBLE_STAFF_TOGGLE = 6487, // Have to include resource strings (from scenarios and objects) for the time being now that language is partially working /* MAX_STR_COUNT = 32768 */ // MAX_STR_COUNT - upper limit for number of strings, not the current count strings