mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 19:13:07 +01:00
Code cleanup, remove ignore_invisible_flag.
Known issues: - Some flat-rides have transparency issues
This commit is contained in:
@@ -121,96 +121,102 @@ public:
|
||||
|
||||
void OnPrepareDraw() override
|
||||
{
|
||||
uint32_t wflags = 0;
|
||||
rct_window* w = window_get_main();
|
||||
|
||||
pressed_widgets = 0;
|
||||
disabled_widgets = 0;
|
||||
|
||||
rct_window* w = window_get_main();
|
||||
if (w == nullptr)
|
||||
return;
|
||||
if (w != nullptr)
|
||||
wflags = w->viewport->flags;
|
||||
|
||||
SetWidgetPressed(WIDX_SEE_THROUGH_RIDES, (w->viewport->flags & VIEWPORT_FLAG_SEETHROUGH_RIDES));
|
||||
SetWidgetPressed(WIDX_SEE_THROUGH_VEHICLES, (w->viewport->flags & VIEWPORT_FLAG_SEETHROUGH_VEHICLES));
|
||||
SetWidgetPressed(WIDX_SEE_THROUGH_SCENERY, (w->viewport->flags & VIEWPORT_FLAG_SEETHROUGH_SCENERY));
|
||||
SetWidgetPressed(WIDX_SEE_THROUGH_TREES, (w->viewport->flags & VIEWPORT_FLAG_SEETHROUGH_TREES));
|
||||
SetWidgetPressed(WIDX_SEE_THROUGH_PATHS, (w->viewport->flags & VIEWPORT_FLAG_SEETHROUGH_PATHS));
|
||||
SetWidgetPressed(WIDX_SEE_THROUGH_SUPPORTS, (w->viewport->flags & VIEWPORT_FLAG_SEETHROUGH_SUPPORTS));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_RIDES, (w->viewport->flags & VIEWPORT_FLAG_INVISIBLE_RIDES));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_VEHICLES, (w->viewport->flags & VIEWPORT_FLAG_INVISIBLE_VEHICLES));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_SCENERY, (w->viewport->flags & VIEWPORT_FLAG_INVISIBLE_SCENERY));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_TREES, (w->viewport->flags & VIEWPORT_FLAG_INVISIBLE_TREES));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_PATHS, (w->viewport->flags & VIEWPORT_FLAG_INVISIBLE_PATHS));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_SUPPORTS, (w->viewport->flags & VIEWPORT_FLAG_INVISIBLE_SUPPORTS));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_GUESTS, (w->viewport->flags & VIEWPORT_FLAG_INVISIBLE_GUESTS));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_STAFF, (w->viewport->flags & VIEWPORT_FLAG_INVISIBLE_STAFF));
|
||||
SetWidgetPressed(WIDX_SEE_THROUGH_RIDES, (wflags & VIEWPORT_FLAG_SEETHROUGH_RIDES));
|
||||
SetWidgetPressed(WIDX_SEE_THROUGH_VEHICLES, (wflags & VIEWPORT_FLAG_SEETHROUGH_VEHICLES));
|
||||
SetWidgetPressed(WIDX_SEE_THROUGH_SCENERY, (wflags & VIEWPORT_FLAG_SEETHROUGH_SCENERY));
|
||||
SetWidgetPressed(WIDX_SEE_THROUGH_TREES, (wflags & VIEWPORT_FLAG_SEETHROUGH_TREES));
|
||||
SetWidgetPressed(WIDX_SEE_THROUGH_PATHS, (wflags & VIEWPORT_FLAG_SEETHROUGH_PATHS));
|
||||
SetWidgetPressed(WIDX_SEE_THROUGH_SUPPORTS, (wflags & VIEWPORT_FLAG_SEETHROUGH_SUPPORTS));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_RIDES, (wflags & VIEWPORT_FLAG_INVISIBLE_RIDES));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_VEHICLES, (wflags & VIEWPORT_FLAG_INVISIBLE_VEHICLES));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_SCENERY, (wflags & VIEWPORT_FLAG_INVISIBLE_SCENERY));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_TREES, (wflags & VIEWPORT_FLAG_INVISIBLE_TREES));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_PATHS, (wflags & VIEWPORT_FLAG_INVISIBLE_PATHS));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_SUPPORTS, (wflags & VIEWPORT_FLAG_INVISIBLE_SUPPORTS));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_GUESTS, (wflags & VIEWPORT_FLAG_INVISIBLE_GUESTS));
|
||||
SetWidgetPressed(WIDX_INVISIBLE_STAFF, (wflags & VIEWPORT_FLAG_INVISIBLE_STAFF));
|
||||
}
|
||||
|
||||
void OnDraw(rct_drawpixelinfo& dpi) override
|
||||
{
|
||||
DrawWidgets(dpi);
|
||||
// Locate mechanic button image
|
||||
rct_widget* widget = &widgets[WIDX_INVISIBLE_STAFF];
|
||||
auto screenCoords = windowPos + ScreenCoordsXY{ widget->left, widget->top };
|
||||
const auto& widget = widgets[WIDX_INVISIBLE_STAFF];
|
||||
auto screenCoords = windowPos + ScreenCoordsXY{ widget.left, widget.top };
|
||||
gfx_draw_sprite(
|
||||
&dpi, (gStaffMechanicColour << 24) | IMAGE_TYPE_REMAP | IMAGE_TYPE_REMAP_2_PLUS | SPR_MECHANIC, screenCoords, 0);
|
||||
}
|
||||
|
||||
OpenRCT2String OnTooltip(rct_widgetindex widgetIndex, rct_string_id fallback) override
|
||||
{
|
||||
return { fallback, {} };
|
||||
}
|
||||
|
||||
private:
|
||||
void OnMouseUpMain(rct_widgetindex widgetIndex)
|
||||
{
|
||||
uint32_t wflags = 0;
|
||||
rct_window* w = window_get_main();
|
||||
|
||||
if (w == nullptr)
|
||||
return;
|
||||
|
||||
wflags = w->viewport->flags;
|
||||
|
||||
switch (widgetIndex)
|
||||
{
|
||||
case WIDX_SEE_THROUGH_RIDES:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_SEETHROUGH_RIDES;
|
||||
wflags ^= VIEWPORT_FLAG_SEETHROUGH_RIDES;
|
||||
break;
|
||||
case WIDX_SEE_THROUGH_VEHICLES:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_SEETHROUGH_VEHICLES;
|
||||
wflags ^= VIEWPORT_FLAG_SEETHROUGH_VEHICLES;
|
||||
break;
|
||||
case WIDX_SEE_THROUGH_SCENERY:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_SEETHROUGH_SCENERY;
|
||||
wflags ^= VIEWPORT_FLAG_SEETHROUGH_SCENERY;
|
||||
break;
|
||||
case WIDX_SEE_THROUGH_TREES:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_SEETHROUGH_TREES;
|
||||
wflags ^= VIEWPORT_FLAG_SEETHROUGH_TREES;
|
||||
break;
|
||||
case WIDX_SEE_THROUGH_PATHS:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_SEETHROUGH_PATHS;
|
||||
wflags ^= VIEWPORT_FLAG_SEETHROUGH_PATHS;
|
||||
break;
|
||||
case WIDX_SEE_THROUGH_SUPPORTS:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_SEETHROUGH_SUPPORTS;
|
||||
wflags ^= VIEWPORT_FLAG_SEETHROUGH_SUPPORTS;
|
||||
break;
|
||||
case WIDX_INVISIBLE_RIDES:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_INVISIBLE_RIDES;
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_RIDES;
|
||||
break;
|
||||
case WIDX_INVISIBLE_VEHICLES:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_INVISIBLE_VEHICLES;
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_VEHICLES;
|
||||
break;
|
||||
case WIDX_INVISIBLE_SCENERY:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_INVISIBLE_SCENERY;
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_SCENERY;
|
||||
break;
|
||||
case WIDX_INVISIBLE_TREES:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_INVISIBLE_TREES;
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_TREES;
|
||||
break;
|
||||
case WIDX_INVISIBLE_PATHS:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_INVISIBLE_PATHS;
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_PATHS;
|
||||
break;
|
||||
case WIDX_INVISIBLE_SUPPORTS:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_INVISIBLE_SUPPORTS;
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_SUPPORTS;
|
||||
break;
|
||||
case WIDX_INVISIBLE_GUESTS:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_INVISIBLE_GUESTS;
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_GUESTS;
|
||||
break;
|
||||
case WIDX_INVISIBLE_STAFF:
|
||||
w->viewport->flags ^= VIEWPORT_FLAG_INVISIBLE_STAFF;
|
||||
wflags ^= VIEWPORT_FLAG_INVISIBLE_STAFF;
|
||||
break;
|
||||
}
|
||||
|
||||
if (w->viewport->flags == wflags)
|
||||
return;
|
||||
|
||||
w->viewport->flags = wflags;
|
||||
w->Invalidate();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -40,7 +40,6 @@ enum
|
||||
VIEWPORT_FLAG_LAND_OWNERSHIP = (1 << 8),
|
||||
VIEWPORT_FLAG_CONSTRUCTION_RIGHTS = (1 << 9),
|
||||
VIEWPORT_FLAG_SOUND_ON = (1 << 10),
|
||||
VIEWPORT_FLAG_INVISIBLE_PEEPS = (1 << 11), // No longer used (seperated into GUESTS and STAFF)
|
||||
VIEWPORT_FLAG_HIDE_BASE = (1 << 12),
|
||||
VIEWPORT_FLAG_HIDE_VERTICAL = (1 << 13),
|
||||
VIEWPORT_FLAG_INVISIBLE_SPRITES = (1 << 14),
|
||||
@@ -59,7 +58,6 @@ enum
|
||||
VIEWPORT_FLAG_SEETHROUGH_TREES = (1 << 27),
|
||||
VIEWPORT_FLAG_INVISIBLE_TREES = (1 << 28),
|
||||
VIEWPORT_FLAG_SEETHROUGH_SUPPORTS = (1 << 29),
|
||||
VIEWPORT_FLAG_TRANSPARENCY_FOREGROUND = (1 << 30),
|
||||
};
|
||||
|
||||
enum class ViewportInteractionItem : uint8_t
|
||||
|
||||
@@ -79,7 +79,7 @@ void EntityPaintSetup(paint_session& session, const CoordsXY& pos)
|
||||
if (veh != nullptr)
|
||||
{
|
||||
auto ride = get_ride(veh->ride);
|
||||
if (ride != nullptr && !ride->ignore_invisible_flag)
|
||||
if (ride != nullptr)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,8 +125,7 @@ static void PaintRideEntranceExit(paint_session& session, uint8_t direction, int
|
||||
return;
|
||||
}
|
||||
|
||||
if ((session.ViewFlags & VIEWPORT_FLAG_SEETHROUGH_RIDES) && (session.ViewFlags & VIEWPORT_FLAG_INVISIBLE_RIDES)
|
||||
&& !ride->ignore_invisible_flag)
|
||||
if ((session.ViewFlags & VIEWPORT_FLAG_SEETHROUGH_RIDES) && (session.ViewFlags & VIEWPORT_FLAG_INVISIBLE_RIDES))
|
||||
return;
|
||||
|
||||
auto stationObj = ride->GetStationObject();
|
||||
|
||||
@@ -287,7 +287,6 @@ public:
|
||||
uint16_t inversions;
|
||||
uint16_t holes;
|
||||
uint8_t sheltered_eighths;
|
||||
bool ignore_invisible_flag = false;
|
||||
|
||||
std::unique_ptr<RideMeasurement> measurement;
|
||||
|
||||
|
||||
@@ -2195,8 +2195,7 @@ void PaintTrack(paint_session& session, Direction direction, int32_t height, con
|
||||
return;
|
||||
}
|
||||
|
||||
if ((session->ViewFlags & VIEWPORT_FLAG_SEETHROUGH_RIDES && session->ViewFlags & VIEWPORT_FLAG_INVISIBLE_RIDES)
|
||||
&& ride->ignore_invisible_flag == false)
|
||||
if (session->ViewFlags & VIEWPORT_FLAG_SEETHROUGH_RIDES && session->ViewFlags & VIEWPORT_FLAG_INVISIBLE_RIDES)
|
||||
return;
|
||||
|
||||
if ((!gTrackDesignSaveMode || rideIndex == gTrackDesignSaveRideIndex)
|
||||
|
||||
Reference in New Issue
Block a user