From 884ef6b8ac3ba115fc02376053afd685ca63ae0d Mon Sep 17 00:00:00 2001 From: Ted John Date: Thu, 17 Mar 2022 23:26:36 +0000 Subject: [PATCH] Change transparent trees to all vegetation --- data/language/en-GB.txt | 32 ++++----- src/openrct2-ui/input/ShortcutIds.h | 2 +- src/openrct2-ui/input/Shortcuts.cpp | 6 +- src/openrct2-ui/windows/Main.cpp | 2 +- src/openrct2-ui/windows/TopToolbar.cpp | 16 ++--- src/openrct2-ui/windows/Transparency.cpp | 28 ++++---- src/openrct2/interface/Viewport.cpp | 90 +++++++++++++++++------- src/openrct2/interface/Viewport.h | 4 +- src/openrct2/localisation/StringIds.h | 32 ++++----- 9 files changed, 124 insertions(+), 88 deletions(-) diff --git a/data/language/en-GB.txt b/data/language/en-GB.txt index 356f3c2e3c..5cf1bf62d1 100644 --- a/data/language/en-GB.txt +++ b/data/language/en-GB.txt @@ -3659,23 +3659,23 @@ STR_6467 :Nausea: {COMMA2DP32} STR_6468 :Not Yet Known STR_6469 :Adjust smaller area of patrol area STR_6470 :Adjust larger area of patrol area -STR_6471 :See-Through Vehicles -STR_6472 :See-Through Trees -STR_6473 :Invisible Rides -STR_6474 :Invisible Scenery -STR_6475 :Invisible Trees -STR_6476 :Invisible Paths -STR_6477 :Invisible Guests -STR_6478 :Invisible Staff -STR_6479 :Transparency Options -STR_6480 :Transparency Options -STR_6481 :Invisible Vehicles -STR_6482 :See-Through Supports +STR_6471 :See-Through Vegetation +STR_6472 :See-Through Vehicles +STR_6473 :See-Through Supports +STR_6474 :See-Through Guests +STR_6475 :See-Through Staff +STR_6476 :Invisible Vegetation +STR_6477 :Invisible Scenery +STR_6478 :Invisible Paths +STR_6479 :Invisible Rides +STR_6480 :Invisible Vehicles +STR_6481 :Transparency Options +STR_6482 :Transparency Options 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 +STR_6484 :See-Through vegetation toggle +STR_6485 :See-Through vehicles toggle +STR_6486 :See-Through guests toggle +STR_6487 :See-Through staff toggle ############# # Scenarios # diff --git a/src/openrct2-ui/input/ShortcutIds.h b/src/openrct2-ui/input/ShortcutIds.h index 6f7693823a..e562489b0d 100644 --- a/src/openrct2-ui/input/ShortcutIds.h +++ b/src/openrct2-ui/input/ShortcutIds.h @@ -76,7 +76,7 @@ namespace OpenRCT2::Ui::ShortcutId 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 ViewToggleVegetation = "view.toggle.transparent_vegetation"; 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"; diff --git a/src/openrct2-ui/input/Shortcuts.cpp b/src/openrct2-ui/input/Shortcuts.cpp index 2655ae0098..0b8c370cd3 100644 --- a/src/openrct2-ui/input/Shortcuts.cpp +++ b/src/openrct2-ui/input/Shortcuts.cpp @@ -855,12 +855,12 @@ void ShortcutManager::RegisterDefaultShortcuts() 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::ViewToggleVegetation, STR_SHORTCUT_SEE_THROUGH_VEGETATION_TOGGLE, []() { ToggleViewFlag(VIEWPORT_FLAG_HIDE_VEGETATION); }); 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", []() { 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::ViewToggleGuests, STR_SHORTCUT_SEE_THROUGH_GUESTS_TOGGLE, "6", []() { ToggleViewFlag(VIEWPORT_FLAG_HIDE_GUESTS); }); + RegisterShortcut(ShortcutId::ViewToggleStaff, STR_SHORTCUT_SEE_THROUGH_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/Main.cpp b/src/openrct2-ui/windows/Main.cpp index 8b6be0cee5..70208361e5 100644 --- a/src/openrct2-ui/windows/Main.cpp +++ b/src/openrct2-ui/windows/Main.cpp @@ -65,7 +65,7 @@ static void WindowMainSetViewportFlags(rct_viewport& viewport) if (gConfigGeneral.invisible_vehicles) viewport.flags |= VIEWPORT_FLAG_INVISIBLE_VEHICLES; if (gConfigGeneral.invisible_trees) - viewport.flags |= VIEWPORT_FLAG_INVISIBLE_TREES; + viewport.flags |= VIEWPORT_FLAG_INVISIBLE_VEGETATION; if (gConfigGeneral.invisible_scenery) viewport.flags |= VIEWPORT_FLAG_INVISIBLE_SCENERY; if (gConfigGeneral.invisible_paths) diff --git a/src/openrct2-ui/windows/TopToolbar.cpp b/src/openrct2-ui/windows/TopToolbar.cpp index b416783f1d..a69411443e 100644 --- a/src/openrct2-ui/windows/TopToolbar.cpp +++ b/src/openrct2-ui/windows/TopToolbar.cpp @@ -138,7 +138,7 @@ enum TopToolbarViewMenuDdidx // separator DDIDX_HIDE_RIDES = 5, DDIDX_HIDE_VEHICLES = 6, - DDIDX_HIDE_TREES = 7, + DDIDX_HIDE_VEGETATION = 7, DDIDX_HIDE_SCENERY = 8, DDIDX_HIDE_PATHS = 9, DDIDX_HIDE_SUPPORTS = 10, @@ -3630,12 +3630,12 @@ static void TopToolbarInitViewMenu(rct_window* w, rct_widget* widget) Separator(), 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_VEGETATION, STR_SEE_THROUGH_VEGETATION), 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), + ToggleOption(DDIDX_HIDE_GUESTS, STR_SEE_THROUGH_GUESTS), + ToggleOption(DDIDX_HIDE_STAFF, STR_SEE_THROUGH_STAFF), Separator(), ToggleOption(DDIDX_LAND_HEIGHTS, STR_HEIGHT_MARKS_ON_LAND), ToggleOption(DDIDX_TRACK_HEIGHTS, STR_HEIGHT_MARKS_ON_RIDE_TRACKS), @@ -3669,8 +3669,8 @@ static void TopToolbarInitViewMenu(rct_window* w, rct_widget* widget) 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_VEGETATION) + Dropdown::SetChecked(DDIDX_HIDE_VEGETATION, true); if (mainViewport->flags & VIEWPORT_FLAG_HIDE_SCENERY) Dropdown::SetChecked(DDIDX_HIDE_SCENERY, true); if (mainViewport->flags & VIEWPORT_FLAG_HIDE_PATHS) @@ -3731,8 +3731,8 @@ static void TopToolbarViewMenuDropdown(int16_t dropdownIndex) case DDIDX_HIDE_VEHICLES: w->viewport->flags ^= VIEWPORT_FLAG_HIDE_VEHICLES; break; - case DDIDX_HIDE_TREES: - w->viewport->flags ^= VIEWPORT_FLAG_HIDE_TREES; + case DDIDX_HIDE_VEGETATION: + w->viewport->flags ^= VIEWPORT_FLAG_HIDE_VEGETATION; break; case DDIDX_HIDE_SCENERY: w->viewport->flags ^= VIEWPORT_FLAG_HIDE_SCENERY; diff --git a/src/openrct2-ui/windows/Transparency.cpp b/src/openrct2-ui/windows/Transparency.cpp index 7299bf56be..7a324b472b 100644 --- a/src/openrct2-ui/windows/Transparency.cpp +++ b/src/openrct2-ui/windows/Transparency.cpp @@ -36,7 +36,7 @@ enum WINDOW_TRANSPARENCY_WIDGET_IDX WIDX_TITLE, WIDX_CLOSE, - WIDX_HIDE_TREES, + WIDX_HIDE_VEGETATION, WIDX_HIDE_SCENERY, WIDX_HIDE_PATHS, WIDX_HIDE_RIDES, @@ -44,7 +44,7 @@ enum WINDOW_TRANSPARENCY_WIDGET_IDX WIDX_HIDE_SUPPORTS, WIDX_HIDE_GUESTS, WIDX_HIDE_STAFF, - WIDX_INVISIBLE_TREES, + WIDX_INVISIBLE_VEGETATION, WIDX_INVISIBLE_SCENERY, WIDX_INVISIBLE_PATHS, WIDX_INVISIBLE_RIDES, @@ -66,16 +66,16 @@ static constexpr ScreenSize INVISIBLE_SIZE = {24, 12}; static rct_widget window_transparency_main_widgets[] = { WINDOW_SHIM(WINDOW_TITLE, WW, WH), - MakeWidget({ 2, 17}, HIDE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_G2_BUTTON_HIDE_VEGETATION, STR_SEE_THROUGH_TREES), + MakeWidget({ 2, 17}, HIDE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_G2_BUTTON_HIDE_VEGETATION, STR_SEE_THROUGH_VEGETATION), MakeWidget({ 27, 17}, HIDE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_G2_BUTTON_HIDE_SCENERY, STR_SEE_THROUGH_SCENERY), MakeWidget({ 52, 17}, HIDE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_G2_BUTTON_FOOTPATH, STR_SEE_THROUGH_PATHS), MakeWidget({ 77, 17}, HIDE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_RIDE, STR_SEE_THROUGH_RIDES), MakeWidget({102, 17}, HIDE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_G2_BUTTON_HIDE_VEHICLES, STR_SEE_THROUGH_VEHICLES), MakeWidget({127, 17}, HIDE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_G2_BUTTON_HIDE_SUPPORTS, STR_SEE_THROUGH_SUPPORTS), - MakeWidget({152, 17}, HIDE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_GUESTS, STR_INVISIBLE_GUESTS), - MakeWidget({177, 17}, HIDE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Secondary, 0xFFFFFFFF, STR_INVISIBLE_STAFF), + MakeWidget({152, 17}, HIDE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Secondary, SPR_GUESTS, STR_SEE_THROUGH_GUESTS), + MakeWidget({177, 17}, HIDE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Secondary, 0xFFFFFFFF, STR_SEE_THROUGH_STAFF), - MakeWidget({ 2, 42}, INVISIBLE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Tertiary, STR_NONE, STR_INVISIBLE_TREES), + MakeWidget({ 2, 42}, INVISIBLE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Tertiary, STR_NONE, STR_INVISIBLE_VEGETATION), MakeWidget({ 27, 42}, INVISIBLE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Tertiary, STR_NONE, STR_INVISIBLE_SCENERY), MakeWidget({ 52, 42}, INVISIBLE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Tertiary, STR_NONE, STR_INVISIBLE_PATHS), MakeWidget({ 77, 42}, INVISIBLE_SIZE, WindowWidgetType::FlatBtn, WindowColour::Tertiary, STR_NONE, STR_INVISIBLE_RIDES), @@ -124,7 +124,7 @@ public: if (w != nullptr) wflags = w->viewport->flags; - SetWidgetPressed(WIDX_HIDE_TREES, (wflags & VIEWPORT_FLAG_HIDE_TREES)); + SetWidgetPressed(WIDX_HIDE_VEGETATION, (wflags & VIEWPORT_FLAG_HIDE_VEGETATION)); SetWidgetPressed(WIDX_HIDE_SCENERY, (wflags & VIEWPORT_FLAG_HIDE_SCENERY)); SetWidgetPressed(WIDX_HIDE_PATHS, (wflags & VIEWPORT_FLAG_HIDE_PATHS)); SetWidgetPressed(WIDX_HIDE_RIDES, (wflags & VIEWPORT_FLAG_HIDE_RIDES)); @@ -132,14 +132,14 @@ public: SetWidgetPressed(WIDX_HIDE_SUPPORTS, (wflags & VIEWPORT_FLAG_HIDE_SUPPORTS)); SetWidgetPressed(WIDX_HIDE_GUESTS, (wflags & VIEWPORT_FLAG_HIDE_GUESTS)); SetWidgetPressed(WIDX_HIDE_STAFF, (wflags & VIEWPORT_FLAG_HIDE_STAFF)); - SetWidgetPressed(WIDX_INVISIBLE_TREES, (wflags & VIEWPORT_FLAG_INVISIBLE_TREES)); + SetWidgetPressed(WIDX_INVISIBLE_VEGETATION, (wflags & VIEWPORT_FLAG_INVISIBLE_VEGETATION)); SetWidgetPressed(WIDX_INVISIBLE_SCENERY, (wflags & VIEWPORT_FLAG_INVISIBLE_SCENERY)); SetWidgetPressed(WIDX_INVISIBLE_PATHS, (wflags & VIEWPORT_FLAG_INVISIBLE_PATHS)); SetWidgetPressed(WIDX_INVISIBLE_RIDES, (wflags & VIEWPORT_FLAG_INVISIBLE_RIDES)); SetWidgetPressed(WIDX_INVISIBLE_VEHICLES, (wflags & VIEWPORT_FLAG_INVISIBLE_VEHICLES)); SetWidgetPressed(WIDX_INVISIBLE_SUPPORTS, (wflags & VIEWPORT_FLAG_INVISIBLE_SUPPORTS)); - for (rct_widgetindex i = WIDX_INVISIBLE_TREES; i <= WIDX_INVISIBLE_SUPPORTS; i++) + for (rct_widgetindex i = WIDX_INVISIBLE_VEGETATION; i <= WIDX_INVISIBLE_SUPPORTS; i++) { widgets[i].image = IsWidgetPressed(i) ? SPR_G2_BUTTON_HIDE_FULL : SPR_G2_BUTTON_HIDE_PARTIAL; } @@ -177,8 +177,8 @@ private: case WIDX_HIDE_SCENERY: wflags ^= VIEWPORT_FLAG_HIDE_SCENERY; break; - case WIDX_HIDE_TREES: - wflags ^= VIEWPORT_FLAG_HIDE_TREES; + case WIDX_HIDE_VEGETATION: + wflags ^= VIEWPORT_FLAG_HIDE_VEGETATION; break; case WIDX_HIDE_PATHS: wflags ^= VIEWPORT_FLAG_HIDE_PATHS; @@ -201,9 +201,9 @@ private: gConfigGeneral.invisible_scenery = wflags & VIEWPORT_FLAG_INVISIBLE_SCENERY; config_save_default(); break; - case WIDX_INVISIBLE_TREES: - wflags ^= VIEWPORT_FLAG_INVISIBLE_TREES; - gConfigGeneral.invisible_trees = wflags & VIEWPORT_FLAG_INVISIBLE_TREES; + case WIDX_INVISIBLE_VEGETATION: + wflags ^= VIEWPORT_FLAG_INVISIBLE_VEGETATION; + gConfigGeneral.invisible_trees = wflags & VIEWPORT_FLAG_INVISIBLE_VEGETATION; config_save_default(); break; case WIDX_INVISIBLE_PATHS: diff --git a/src/openrct2/interface/Viewport.cpp b/src/openrct2/interface/Viewport.cpp index 2a781e1854..c1fceb32a0 100644 --- a/src/openrct2/interface/Viewport.cpp +++ b/src/openrct2/interface/Viewport.cpp @@ -1324,7 +1324,7 @@ void viewport_set_visibility(uint8_t mode) | VIEWPORT_FLAG_HIDE_STAFF | VIEWPORT_FLAG_HIDE_BASE | VIEWPORT_FLAG_HIDE_VERTICAL | VIEWPORT_FLAG_HIDE_VEHICLES | VIEWPORT_FLAG_INVISIBLE_RIDES | VIEWPORT_FLAG_INVISIBLE_VEHICLES | VIEWPORT_FLAG_HIDE_SUPPORTS | VIEWPORT_FLAG_INVISIBLE_PATHS | VIEWPORT_FLAG_INVISIBLE_SCENERY - | VIEWPORT_FLAG_HIDE_TREES | VIEWPORT_FLAG_INVISIBLE_TREES; + | VIEWPORT_FLAG_HIDE_VEGETATION | VIEWPORT_FLAG_INVISIBLE_VEGETATION; invalidate += vp->flags & mask; vp->flags &= ~mask; @@ -1353,16 +1353,55 @@ void viewport_set_visibility(uint8_t mode) } } -static bool IsTileElementTree(const TileElement* tileElement) +static bool IsCursorIdVegetation(CursorID cursor) { - auto sceneryItem = tileElement->AsSmallScenery(); - if (sceneryItem != nullptr) + switch (cursor) { - auto sceneryEntry = sceneryItem->GetEntry(); - if (sceneryEntry != nullptr && sceneryEntry->HasFlag(SMALL_SCENERY_FLAG_IS_TREE)) - { + case CursorID::TreeDown: + case CursorID::FlowerDown: return true; + default: + return false; + } +} + +static bool IsTileElementVegetation(const TileElement* tileElement) +{ + switch (tileElement->GetType()) + { + case TileElementType::SmallScenery: + { + auto sceneryItem = tileElement->AsSmallScenery(); + auto sceneryEntry = sceneryItem->GetEntry(); + if (sceneryEntry != nullptr + && (sceneryEntry->HasFlag(SMALL_SCENERY_FLAG_IS_TREE) || IsCursorIdVegetation(sceneryEntry->tool_id))) + { + return true; + } + break; } + case TileElementType::LargeScenery: + { + auto sceneryItem = tileElement->AsLargeScenery(); + auto sceneryEntry = sceneryItem->GetEntry(); + if (sceneryEntry != nullptr && IsCursorIdVegetation(sceneryEntry->tool_id)) + { + return true; + } + break; + } + case TileElementType::Wall: + { + auto sceneryItem = tileElement->AsWall(); + auto sceneryEntry = sceneryItem->GetEntry(); + if (sceneryEntry != nullptr && IsCursorIdVegetation(sceneryEntry->tool_id)) + { + return true; + } + break; + } + default: + break; } return false; } @@ -1415,34 +1454,31 @@ VisibilityKind GetPaintStructVisibility(const paint_struct* ps, uint32_t viewFla } break; case ViewportInteractionItem::Scenery: - if (ps->tileElement != nullptr && IsTileElementTree(ps->tileElement)) + case ViewportInteractionItem::LargeScenery: + case ViewportInteractionItem::Wall: + if (ps->tileElement != nullptr) { - if (viewFlags & VIEWPORT_FLAG_HIDE_TREES) + if (IsTileElementVegetation(ps->tileElement)) { - return (viewFlags & VIEWPORT_FLAG_INVISIBLE_TREES) ? VisibilityKind::Hidden : VisibilityKind::Partial; + if (viewFlags & VIEWPORT_FLAG_HIDE_VEGETATION) + { + return (viewFlags & VIEWPORT_FLAG_INVISIBLE_VEGETATION) ? VisibilityKind::Hidden + : VisibilityKind::Partial; + } + } + else + { + if (viewFlags & VIEWPORT_FLAG_HIDE_SCENERY) + { + return (viewFlags & VIEWPORT_FLAG_INVISIBLE_SCENERY) ? VisibilityKind::Hidden : VisibilityKind::Partial; + } } } - else if (viewFlags & VIEWPORT_FLAG_HIDE_SCENERY) - { - return (viewFlags & VIEWPORT_FLAG_INVISIBLE_SCENERY) ? VisibilityKind::Hidden : VisibilityKind::Partial; - } - break; - case ViewportInteractionItem::Wall: - if (viewFlags & VIEWPORT_FLAG_HIDE_SCENERY) - { - return (viewFlags & VIEWPORT_FLAG_INVISIBLE_SCENERY) ? VisibilityKind::Hidden : VisibilityKind::Partial; - } - if (viewFlags & VIEWPORT_FLAG_UNDERGROUND_INSIDE) + if (ps->sprite_type == ViewportInteractionItem::Wall && (viewFlags & VIEWPORT_FLAG_UNDERGROUND_INSIDE)) { return VisibilityKind::Partial; } break; - case ViewportInteractionItem::LargeScenery: - if (viewFlags & VIEWPORT_FLAG_HIDE_SCENERY) - { - return (viewFlags & VIEWPORT_FLAG_INVISIBLE_SCENERY) ? VisibilityKind::Hidden : VisibilityKind::Partial; - } - break; default: break; } diff --git a/src/openrct2/interface/Viewport.h b/src/openrct2/interface/Viewport.h index d6c1da140f..289136f1fd 100644 --- a/src/openrct2/interface/Viewport.h +++ b/src/openrct2/interface/Viewport.h @@ -50,7 +50,7 @@ enum VIEWPORT_FLAG_HIDE_RIDES = (1 << 1), VIEWPORT_FLAG_HIDE_VEHICLES = (1 << 20), - VIEWPORT_FLAG_HIDE_TREES = (1 << 21), + VIEWPORT_FLAG_HIDE_VEGETATION = (1 << 21), VIEWPORT_FLAG_HIDE_SCENERY = (1 << 2), VIEWPORT_FLAG_HIDE_PATHS = (1 << 16), VIEWPORT_FLAG_HIDE_SUPPORTS = (1 << 3), @@ -59,7 +59,7 @@ enum VIEWPORT_FLAG_INVISIBLE_RIDES = (1 << 24), VIEWPORT_FLAG_INVISIBLE_VEHICLES = (1 << 25), - VIEWPORT_FLAG_INVISIBLE_TREES = (1 << 26), + VIEWPORT_FLAG_INVISIBLE_VEGETATION = (1 << 26), VIEWPORT_FLAG_INVISIBLE_SCENERY = (1 << 27), VIEWPORT_FLAG_INVISIBLE_PATHS = (1 << 28), VIEWPORT_FLAG_INVISIBLE_SUPPORTS = (1 << 29), diff --git a/src/openrct2/localisation/StringIds.h b/src/openrct2/localisation/StringIds.h index faaaafccb4..d389c6c060 100644 --- a/src/openrct2/localisation/StringIds.h +++ b/src/openrct2/localisation/StringIds.h @@ -3928,23 +3928,23 @@ enum : uint16_t STR_ADJUST_SMALLER_PATROL_AREA_TIP = 6469, STR_ADJUST_LARGER_PATROL_AREA_TIP = 6470, - STR_SEE_THROUGH_VEHICLES = 6471, - STR_SEE_THROUGH_TREES = 6472, - STR_INVISIBLE_RIDES = 6473, - STR_INVISIBLE_SCENERY = 6474, - STR_INVISIBLE_TREES = 6475, - STR_INVISIBLE_PATHS = 6476, - STR_INVISIBLE_GUESTS = 6477, - STR_INVISIBLE_STAFF = 6478, - STR_TRANSPARENCY_OPTIONS = 6479, - STR_TRANSPARENCY_OPTIONS_TITLE = 6480, - STR_INVISIBLE_VEHICLES = 6481, - STR_SEE_THROUGH_SUPPORTS = 6482, + STR_SEE_THROUGH_VEGETATION = 6471, + STR_SEE_THROUGH_VEHICLES = 6472, + STR_SEE_THROUGH_SUPPORTS = 6473, + STR_SEE_THROUGH_GUESTS = 6474, + STR_SEE_THROUGH_STAFF = 6475, + STR_INVISIBLE_VEGETATION = 6476, + STR_INVISIBLE_SCENERY = 6477, + STR_INVISIBLE_PATHS = 6478, + STR_INVISIBLE_RIDES = 6479, + STR_INVISIBLE_VEHICLES = 6480, + STR_TRANSPARENCY_OPTIONS = 6481, + STR_TRANSPARENCY_OPTIONS_TITLE = 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, + STR_SHORTCUT_SEE_THROUGH_VEGETATION_TOGGLE = 6484, + STR_SHORTCUT_SEE_THROUGH_VEHICLES_TOGGLE = 6485, + STR_SHORTCUT_SEE_THROUGH_GUESTS_TOGGLE = 6486, + STR_SHORTCUT_SEE_THROUGH_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