1
0
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:
Tulio Leao
2024-09-01 07:55:58 -03:00
committed by GitHub
4 changed files with 33 additions and 10 deletions

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);
}