mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-25 07:44:38 +01:00
Merge pull request #22671 from tupaschoal/transparency-2
This commit is contained in:
@@ -36,9 +36,9 @@ static Widget _mainWidgets[] = {
|
||||
widgets = _mainWidgets;
|
||||
|
||||
ViewportCreate(this, windowPos, width, height, Focus(CoordsXYZ(0x0FFF, 0x0FFF, 0)));
|
||||
if (viewport != nullptr && !(gScreenFlags & SCREEN_FLAGS_TITLE_DEMO))
|
||||
if (viewport != nullptr)
|
||||
{
|
||||
SetViewportFlags();
|
||||
SetViewportFlags(gScreenFlags & SCREEN_FLAGS_TITLE_DEMO);
|
||||
viewport->rotation = 0;
|
||||
}
|
||||
gShowGridLinesRefCount = 0;
|
||||
@@ -53,9 +53,14 @@ static Widget _mainWidgets[] = {
|
||||
}
|
||||
|
||||
private:
|
||||
void SetViewportFlags()
|
||||
void SetViewportFlags(bool isTitleWindow)
|
||||
{
|
||||
viewport->flags |= VIEWPORT_FLAG_SOUND_ON;
|
||||
if (isTitleWindow)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (Config::Get().general.InvisibleRides)
|
||||
{
|
||||
viewport->flags |= VIEWPORT_FLAG_INVISIBLE_RIDES;
|
||||
|
||||
@@ -158,6 +158,18 @@ static Widget _transparancyWidgets[] =
|
||||
}
|
||||
|
||||
private:
|
||||
uint32_t ToggleSeeThrough(uint32_t wflags, uint32_t seeThroughFlag, uint32_t transparencyFlag)
|
||||
{
|
||||
wflags ^= seeThroughFlag;
|
||||
// If see-through is disabled, we also want to disable invisible
|
||||
if (!(wflags & seeThroughFlag))
|
||||
{
|
||||
wflags &= ~transparencyFlag;
|
||||
}
|
||||
SaveInConfig(wflags);
|
||||
return wflags;
|
||||
}
|
||||
|
||||
uint32_t ToggleTransparency(uint32_t wflags, uint32_t transparencyFlag, uint32_t seeThroughFlag)
|
||||
{
|
||||
wflags ^= transparencyFlag;
|
||||
@@ -165,6 +177,10 @@ static Widget _transparancyWidgets[] =
|
||||
{
|
||||
wflags |= seeThroughFlag;
|
||||
}
|
||||
else
|
||||
{
|
||||
wflags &= ~seeThroughFlag;
|
||||
}
|
||||
SaveInConfig(wflags);
|
||||
return wflags;
|
||||
}
|
||||
@@ -182,22 +198,22 @@ static Widget _transparancyWidgets[] =
|
||||
switch (widgetIndex)
|
||||
{
|
||||
case WIDX_HIDE_RIDES:
|
||||
wflags ^= VIEWPORT_FLAG_HIDE_RIDES;
|
||||
wflags = ToggleSeeThrough(wflags, VIEWPORT_FLAG_HIDE_RIDES, VIEWPORT_FLAG_INVISIBLE_RIDES);
|
||||
break;
|
||||
case WIDX_HIDE_VEHICLES:
|
||||
wflags ^= VIEWPORT_FLAG_HIDE_VEHICLES;
|
||||
wflags = ToggleSeeThrough(wflags, VIEWPORT_FLAG_HIDE_VEHICLES, VIEWPORT_FLAG_INVISIBLE_VEHICLES);
|
||||
break;
|
||||
case WIDX_HIDE_SCENERY:
|
||||
wflags ^= VIEWPORT_FLAG_HIDE_SCENERY;
|
||||
wflags = ToggleSeeThrough(wflags, VIEWPORT_FLAG_HIDE_SCENERY, VIEWPORT_FLAG_INVISIBLE_SCENERY);
|
||||
break;
|
||||
case WIDX_HIDE_VEGETATION:
|
||||
wflags ^= VIEWPORT_FLAG_HIDE_VEGETATION;
|
||||
wflags = ToggleSeeThrough(wflags, VIEWPORT_FLAG_HIDE_VEGETATION, VIEWPORT_FLAG_INVISIBLE_VEGETATION);
|
||||
break;
|
||||
case WIDX_HIDE_PATHS:
|
||||
wflags ^= VIEWPORT_FLAG_HIDE_PATHS;
|
||||
wflags = ToggleSeeThrough(wflags, VIEWPORT_FLAG_HIDE_PATHS, VIEWPORT_FLAG_INVISIBLE_PATHS);
|
||||
break;
|
||||
case WIDX_HIDE_SUPPORTS:
|
||||
wflags ^= VIEWPORT_FLAG_HIDE_SUPPORTS;
|
||||
wflags = ToggleSeeThrough(wflags, VIEWPORT_FLAG_HIDE_SUPPORTS, VIEWPORT_FLAG_INVISIBLE_SUPPORTS);
|
||||
break;
|
||||
case WIDX_INVISIBLE_RIDES:
|
||||
wflags = ToggleTransparency(wflags, VIEWPORT_FLAG_INVISIBLE_RIDES, VIEWPORT_FLAG_HIDE_RIDES);
|
||||
|
||||
@@ -248,7 +248,7 @@ namespace OpenRCT2::Config
|
||||
model->InvisibleTrees = reader->GetBoolean("invisible_trees", false);
|
||||
model->InvisibleScenery = reader->GetBoolean("invisible_scenery", false);
|
||||
model->InvisiblePaths = reader->GetBoolean("invisible_paths", false);
|
||||
model->InvisibleSupports = reader->GetBoolean("invisible_supports", true);
|
||||
model->InvisibleSupports = reader->GetBoolean("invisible_supports", false);
|
||||
|
||||
model->LastVersionCheckTime = reader->GetInt64("last_version_check_time", 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user