From 5db3db539af8abe32494a94e19ea1e8711956a45 Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Wed, 13 Sep 2023 07:56:11 -0700 Subject: [PATCH] Client/Server: Handle 'skyname' universally and guess on the client whether we're using a Source Engine style skybox path --- src/client/sky.qc | 17 ++++++++++++++++- src/server/entry.qc | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/client/sky.qc b/src/client/sky.qc index 9dde3083..14b4d4cd 100644 --- a/src/client/sky.qc +++ b/src/client/sky.qc @@ -16,12 +16,27 @@ var string g_strSkyName; +bool +Sky_SourceBSPCheck(string sky) +{ + if not (whichpack(strcat("materials/skybox/", sky, "bk.vmt"))) + return false; + + return true; +} + void Sky_Update(int force) { if (g_strSkyName != serverkey("skyname") || force == TRUE) { g_strSkyName = serverkey("skyname"); - localcmd(sprintf("sky \"%s\"\n", g_strSkyName)); + + /* is it a Source Engine material? */ + if (Sky_SourceBSPCheck(g_strSkyName)) + localcmd(sprintf("sky \"materials/skybox/%s\"\n", g_strSkyName)); + else + localcmd(sprintf("sky \"%s\"\n", g_strSkyName)); + print(sprintf("sky update applying %s.\n", g_strSkyName)); } } diff --git a/src/server/entry.qc b/src/server/entry.qc index 476b18cc..e652b0d3 100644 --- a/src/server/entry.qc +++ b/src/server/entry.qc @@ -485,8 +485,8 @@ worldspawn(void) if (!self.skyname) { self.skyname = "desert"; } - forceinfokey(world, "skyname", self.skyname); } + forceinfokey(world, "skyname", self.skyname); print("Spawning entities\n"); }