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