]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_parse.c
implemented a new type of height fog using a texture to describe
[xonotic/darkplaces.git] / cl_parse.c
index 26cbc6fad27c1c8eba06e112bb60214e0bffe90f..96109e54948b1fcba542e8fc2d676129aeb46144 100644 (file)
@@ -389,6 +389,7 @@ void CL_ParseEntityLump(char *entdata)
                        R_SetSkyBox(value);
                else if (!strcmp("fog", key))
                {
+                       FOG_clear(); // so missing values get good defaults
                        r_refdef.fog_start = 0;
                        r_refdef.fog_alpha = 1;
                        r_refdef.fog_end = 16384;
@@ -417,6 +418,16 @@ void CL_ParseEntityLump(char *entdata)
                        r_refdef.fog_height = atof(value);
                else if (!strcmp("fog_fadedepth", key))
                        r_refdef.fog_fadedepth = atof(value);
+               else if (!strcmp("fog_heighttexture", key))
+               {
+                       FOG_clear(); // so missing values get good defaults
+#if _MSC_VER >= 1400
+                       sscanf_s(value, "%f %f %f %f %f %f %f %f %f %s", &r_refdef.fog_density, &r_refdef.fog_red, &r_refdef.fog_green, &r_refdef.fog_blue, &r_refdef.fog_alpha, &r_refdef.fog_start, &r_refdef.fog_end, &r_refdef.fog_height, &r_refdef.fog_fadedepth, r_refdef.fog_height_texturename, (unsigned int)sizeof(r_refdef.fog_height_texturename));
+#else
+                       sscanf(value, "%f %f %f %f %f %f %f %f %f %63s", &r_refdef.fog_density, &r_refdef.fog_red, &r_refdef.fog_green, &r_refdef.fog_blue, &r_refdef.fog_alpha, &r_refdef.fog_start, &r_refdef.fog_end, &r_refdef.fog_height, &r_refdef.fog_fadedepth, r_refdef.fog_height_texturename);
+#endif
+                       r_refdef.fog_height_texturename[63] = 0;
+               }
        }
 }