From d69a563772e0e3168d60692c7fadf71a6584f8d5 Mon Sep 17 00:00:00 2001 From: Melissa Geels Date: Mon, 27 Oct 2025 16:34:58 +0100 Subject: [PATCH] Experimenting with skydome settings (#5) --- src/04_SkyDome.as | 40 ++++++++++++++++++++++++++++++++++++++++ src/Main.as | 1 + 2 files changed, 41 insertions(+) create mode 100644 src/04_SkyDome.as diff --git a/src/04_SkyDome.as b/src/04_SkyDome.as new file mode 100644 index 0000000..829b4b5 --- /dev/null +++ b/src/04_SkyDome.as @@ -0,0 +1,40 @@ +[Setting category="SkyDome"] +bool Setting_SkyDome = false; + +[Setting category="SkyDome" + if="Setting_SkyDome"] +bool Setting_SkyDomeDouble = false; + +string g_originalSkyDome = ""; + +void SkyDome() +{ + auto map = GetApp().RootMap; + if (map is null) { + return; + } + + CSceneMobil@ mobilSkyDome; + bool isStadium = map.CollectionName == "Stadium"; + auto scene = GetApp().GameScene; + for (uint i = 0; i < scene.Mobils.Length; i++) { + auto mobil = scene.Mobils[i]; + if ( + (isStadium && mobil.IdName == "SkyDome") || + (!isStadium && i == 1) + ) { + @mobilSkyDome = mobil; + break; + } + } + + string desiredSkyDomePath = Setting_SkyDomeDouble + ? "GameData/Sky/Media/Solid/SkyDomeDouble.Solid.Gbx" + : "GameData/Sky/Media/Solid/SkyDome.Solid.Gbx"; + + CSystemFidFile@ fidDesiredSkyDome = Fids::GetGame(skyDomePath); + if (fidDesiredSkyDome.Nod !is null) { + fidDesiredSkyDome.Preload(); + } + @mobilSkyDome.Solid = cast(Fids::Preload(fidDesiredSkyDome)); +} diff --git a/src/Main.as b/src/Main.as index 1d7be89..c624824 100644 --- a/src/Main.as +++ b/src/Main.as @@ -30,6 +30,7 @@ void Render() if (Setting_OverlayScaling) { OverlayScaling(); } #endif LevelOfDetail(); + SkyDome(); if (Setting_FPS && Setting_FPSWhenClosed) { RenderFPS();