mirror of https://github.com/OpenRCT2/OpenRCT2.git
Allow viewports to have an independent rotation
This commit is contained in:
parent
c87b82d75e
commit
425c4cf04e
|
@ -95,7 +95,7 @@ public:
|
|||
savedViewPos = { x - (viewport->view_width / 2), y - (viewport->view_height / 2) };
|
||||
}
|
||||
|
||||
viewport->flags |= VIEWPORT_FLAG_SOUND_ON;
|
||||
viewport->flags |= VIEWPORT_FLAG_SOUND_ON | VIEWPORT_FLAG_INDEPEDENT_ROTATION;
|
||||
|
||||
min_width = WW;
|
||||
min_height = WH;
|
||||
|
@ -111,7 +111,7 @@ public:
|
|||
|
||||
if (viewport != nullptr && viewport->flags != mainWindow->viewport->flags)
|
||||
{
|
||||
viewport->flags = mainWindow->viewport->flags;
|
||||
viewport->flags = mainWindow->viewport->flags | VIEWPORT_FLAG_INDEPEDENT_ROTATION;
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
|
|
|
@ -890,7 +890,14 @@ void ViewportRotateSingle(WindowBase* window, int32_t direction)
|
|||
|
||||
void ViewportRotateAll(int32_t direction)
|
||||
{
|
||||
WindowVisitEach([direction](WindowBase* w) { ViewportRotateSingleInternal(*w, direction); });
|
||||
WindowVisitEach([direction](WindowBase* w) {
|
||||
auto* viewport = w->viewport;
|
||||
if (viewport == nullptr)
|
||||
return;
|
||||
if (viewport->flags & VIEWPORT_FLAG_INDEPEDENT_ROTATION)
|
||||
return;
|
||||
ViewportRotateSingleInternal(*w, direction);
|
||||
});
|
||||
ResetAllSpriteQuadrantPlacements();
|
||||
}
|
||||
|
||||
|
|
|
@ -28,40 +28,42 @@ struct PaintEntry;
|
|||
|
||||
// Flags must currenly retain their values to avoid breaking plugins.
|
||||
// Values can be changed when plugins move to using named constants.
|
||||
enum
|
||||
enum : uint32_t
|
||||
{
|
||||
VIEWPORT_FLAG_GRIDLINES = (1 << 7),
|
||||
VIEWPORT_FLAG_UNDERGROUND_INSIDE = (1 << 0),
|
||||
VIEWPORT_FLAG_HIDE_BASE = (1 << 12),
|
||||
VIEWPORT_FLAG_HIDE_VERTICAL = (1 << 13),
|
||||
VIEWPORT_FLAG_GRIDLINES = (1U << 7),
|
||||
VIEWPORT_FLAG_UNDERGROUND_INSIDE = (1U << 0),
|
||||
VIEWPORT_FLAG_HIDE_BASE = (1U << 12),
|
||||
VIEWPORT_FLAG_HIDE_VERTICAL = (1U << 13),
|
||||
|
||||
VIEWPORT_FLAG_SOUND_ON = (1 << 10),
|
||||
VIEWPORT_FLAG_LAND_OWNERSHIP = (1 << 8),
|
||||
VIEWPORT_FLAG_CONSTRUCTION_RIGHTS = (1 << 9),
|
||||
VIEWPORT_FLAG_HIDE_ENTITIES = (1 << 14),
|
||||
VIEWPORT_FLAG_CLIP_VIEW = (1 << 17),
|
||||
VIEWPORT_FLAG_HIGHLIGHT_PATH_ISSUES = (1 << 18),
|
||||
VIEWPORT_FLAG_TRANSPARENT_BACKGROUND = (1 << 19),
|
||||
VIEWPORT_FLAG_SOUND_ON = (1U << 10),
|
||||
VIEWPORT_FLAG_LAND_OWNERSHIP = (1U << 8),
|
||||
VIEWPORT_FLAG_CONSTRUCTION_RIGHTS = (1U << 9),
|
||||
VIEWPORT_FLAG_HIDE_ENTITIES = (1U << 14),
|
||||
VIEWPORT_FLAG_CLIP_VIEW = (1U << 17),
|
||||
VIEWPORT_FLAG_HIGHLIGHT_PATH_ISSUES = (1U << 18),
|
||||
VIEWPORT_FLAG_TRANSPARENT_BACKGROUND = (1U << 19),
|
||||
|
||||
VIEWPORT_FLAG_LAND_HEIGHTS = (1 << 4),
|
||||
VIEWPORT_FLAG_TRACK_HEIGHTS = (1 << 5),
|
||||
VIEWPORT_FLAG_PATH_HEIGHTS = (1 << 6),
|
||||
VIEWPORT_FLAG_LAND_HEIGHTS = (1U << 4),
|
||||
VIEWPORT_FLAG_TRACK_HEIGHTS = (1U << 5),
|
||||
VIEWPORT_FLAG_PATH_HEIGHTS = (1U << 6),
|
||||
|
||||
VIEWPORT_FLAG_HIDE_RIDES = (1 << 1),
|
||||
VIEWPORT_FLAG_HIDE_VEHICLES = (1 << 20),
|
||||
VIEWPORT_FLAG_HIDE_VEGETATION = (1 << 21),
|
||||
VIEWPORT_FLAG_HIDE_SCENERY = (1 << 2),
|
||||
VIEWPORT_FLAG_HIDE_PATHS = (1 << 16),
|
||||
VIEWPORT_FLAG_HIDE_SUPPORTS = (1 << 3),
|
||||
VIEWPORT_FLAG_HIDE_GUESTS = (1 << 11),
|
||||
VIEWPORT_FLAG_HIDE_STAFF = (1 << 23),
|
||||
VIEWPORT_FLAG_HIDE_RIDES = (1U << 1),
|
||||
VIEWPORT_FLAG_HIDE_VEHICLES = (1U << 20),
|
||||
VIEWPORT_FLAG_HIDE_VEGETATION = (1U << 21),
|
||||
VIEWPORT_FLAG_HIDE_SCENERY = (1U << 2),
|
||||
VIEWPORT_FLAG_HIDE_PATHS = (1U << 16),
|
||||
VIEWPORT_FLAG_HIDE_SUPPORTS = (1U << 3),
|
||||
VIEWPORT_FLAG_HIDE_GUESTS = (1U << 11),
|
||||
VIEWPORT_FLAG_HIDE_STAFF = (1U << 23),
|
||||
|
||||
VIEWPORT_FLAG_INVISIBLE_RIDES = (1 << 24),
|
||||
VIEWPORT_FLAG_INVISIBLE_VEHICLES = (1 << 25),
|
||||
VIEWPORT_FLAG_INVISIBLE_VEGETATION = (1 << 26),
|
||||
VIEWPORT_FLAG_INVISIBLE_SCENERY = (1 << 27),
|
||||
VIEWPORT_FLAG_INVISIBLE_PATHS = (1 << 28),
|
||||
VIEWPORT_FLAG_INVISIBLE_SUPPORTS = (1 << 29),
|
||||
VIEWPORT_FLAG_INVISIBLE_RIDES = (1U << 24),
|
||||
VIEWPORT_FLAG_INVISIBLE_VEHICLES = (1U << 25),
|
||||
VIEWPORT_FLAG_INVISIBLE_VEGETATION = (1U << 26),
|
||||
VIEWPORT_FLAG_INVISIBLE_SCENERY = (1U << 27),
|
||||
VIEWPORT_FLAG_INVISIBLE_PATHS = (1U << 28),
|
||||
VIEWPORT_FLAG_INVISIBLE_SUPPORTS = (1U << 29),
|
||||
|
||||
VIEWPORT_FLAG_INDEPEDENT_ROTATION = (1U << 30),
|
||||
};
|
||||
|
||||
enum class VisibilityKind
|
||||
|
|
Loading…
Reference in New Issue