]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/world.qc
Merge branch 'master' into Mario/q3compat_sanity
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / world.qc
index 0aed2e5078ca3f0f19510e723df3b07451c84d84..4ebab9f07e133c83abc56b12ee717a88e3ff8c23 100644 (file)
@@ -887,12 +887,34 @@ spawnfunc(worldspawn)
        MapInfo_Enumerate();
        MapInfo_FilterGametype(MapInfo_CurrentGametype(), MapInfo_CurrentFeatures(), MapInfo_RequiredFlags(), MapInfo_ForbiddenFlags(), 1);
 
-       if(fexists(strcat("scripts/", mapname, ".arena")))
+       if(fexists(_MapInfo_FindArenaFile(mapname, ".arena")))
                cvar_settemp("sv_q3acompat_machineshotgunswap", "1");
 
-       if(fexists(strcat("scripts/", mapname, ".defi")))
+       if(fexists(_MapInfo_FindArenaFile(mapname, ".defi")))
                cvar_settemp("sv_q3defragcompat", "1");
 
+       // quake 3 music support
+       if(world.music || world.noise)
+       {
+               // prefer .music over .noise
+               string chosen_music;
+               string oldstuff;
+               if(world.music)
+                       chosen_music = world.music;
+               else
+                       chosen_music = world.noise;
+               if(
+                       substring(chosen_music, strlen(chosen_music) - 4, 4) == ".wav"
+                       ||
+                       substring(chosen_music, strlen(chosen_music) - 4, 4) == ".ogg"
+               )
+                       oldstuff = strcat(clientstuff, "cd loop \"", chosen_music, "\"\n");
+               else
+                       oldstuff = strcat(clientstuff, "cd loop \"", chosen_music, "\"\n");
+
+               strcpy(clientstuff, oldstuff);
+       }
+
        if(whichpack(strcat("maps/", mapname, ".cfg")) != "")
        {
                int fd = fopen(strcat("maps/", mapname, ".cfg"), FILE_READ);