"?", // 48
"?", // 49
"svc_skyboxsize", // [coord] size
- "svc_fog" // [byte] enable <optional past this point, only included if enable is true> [float] density [byte] red [byte] green [byte] blue
+ "svc_fog" // [byte] enable <optional past this point, only included if enable is true> [short * 4096] density [byte] red [byte] green [byte] blue
};
//=============================================================================
extern qboolean isworldmodel;
extern char skyname[];
-extern cvar_t r_fogdensity;
-extern cvar_t r_fogred;
-extern cvar_t r_foggreen;
-extern cvar_t r_fogblue;
+extern float fog_density;
+extern float fog_red;
+extern float fog_green;
+extern float fog_blue;
extern void R_SetSkyBox (char *sky);
extern void FOG_clear();
// if (r_skyboxsize.value < 64)
// r_skyboxsize.value = 64;
// }
+ else if (!strcmp("fog", key))
+ {
+ scanf(value, "%f %f %f %f", &fog_density, &fog_red, &fog_green, &fog_blue);
+ j = 0;
+ }
else if (!strcmp("fog_density", key))
- r_fogdensity.value = atof(value);
+ fog_density = atof(value);
else if (!strcmp("fog_red", key))
- r_fogred.value = atof(value);
+ fog_red = atof(value);
else if (!strcmp("fog_green", key))
- r_foggreen.value = atof(value);
+ fog_green = atof(value);
else if (!strcmp("fog_blue", key))
- r_fogblue.value = atof(value);
+ fog_blue = atof(value);
else if (!strcmp("wad", key)) // for HalfLife maps
{
j = 0;
else
{
if (i > cl.maxclients)
- Sys_Error ("i >= cl.maxclients");
- ent->colormap = cl.scores[i-1].translations;
+ Host_Error ("i >= cl.maxclients");
+ ent->colormap = vid.colormap; // cl.scores[i-1].translations;
}
skin = bits & U_SKIN ? MSG_ReadByte() : baseline->skin;
}
}
-/*
-=====================
-CL_NewTranslation
-=====================
-*/
-void CL_NewTranslation (int slot)
-{
- int i, j;
- int top, bottom;
- byte *dest, *source;
-
- if (slot > cl.maxclients)
- Sys_Error ("CL_NewTranslation: slot > cl.maxclients");
- dest = cl.scores[slot].translations;
- source = vid.colormap;
- memcpy (dest, vid.colormap, sizeof(cl.scores[slot].translations));
- top = cl.scores[slot].colors & 0xf0;
- bottom = (cl.scores[slot].colors &15)<<4;
- R_TranslatePlayerSkin (slot);
-
- for (i=0 ; i<VID_GRADES ; i++, dest += 256, source+=256)
- {
- // LordHavoc: corrected color ranges
- if (top < 128 || (top >= 224 && top < 240)) // the artists made some backwards ranges. sigh.
- memcpy (dest + TOP_RANGE, source + top, 16);
- else
- for (j=0 ; j<16 ; j++)
- dest[TOP_RANGE+j] = source[top+15-j];
-
- // LordHavoc: corrected color ranges
- if (bottom < 128 || (bottom >= 224 && bottom < 240))
- memcpy (dest + BOTTOM_RANGE, source + bottom, 16);
- else
- for (j=0 ; j<16 ; j++)
- dest[BOTTOM_RANGE+j] = source[bottom+15-j];
- }
-}
-
/*
=====================
CL_ParseStatic
extern void SHOWLMP_decodeshow();
extern void R_SetSkyBox(char* sky);
-extern cvar_t r_fogdensity;
-extern cvar_t r_fogred;
-extern cvar_t r_foggreen;
-extern cvar_t r_fogblue;
+extern float fog_density;
+extern float fog_red;
+extern float fog_green;
+extern float fog_blue;
/*
=====================
case svc_lightstyle:
i = MSG_ReadByte ();
if (i >= MAX_LIGHTSTYLES)
- Sys_Error ("svc_lightstyle > MAX_LIGHTSTYLES");
+ Host_Error ("svc_lightstyle > MAX_LIGHTSTYLES");
strcpy (cl_lightstyle[i].map, MSG_ReadString());
cl_lightstyle[i].length = strlen(cl_lightstyle[i].map);
break;
if (i >= cl.maxclients)
Host_Error ("CL_ParseServerMessage: svc_updatecolors > MAX_SCOREBOARD");
cl.scores[i].colors = MSG_ReadByte ();
- CL_NewTranslation (i);
+ R_TranslatePlayerSkin (i);
break;
case svc_particle:
case svc_updatestat:
i = MSG_ReadByte ();
if (i < 0 || i >= MAX_CL_STATS)
- Sys_Error ("svc_updatestat: %i is invalid", i);
+ Host_Error ("svc_updatestat: %i is invalid", i);
cl.stats[i] = MSG_ReadLong ();;
break;
case svc_fog:
if (MSG_ReadByte())
{
- r_fogdensity.value = MSG_ReadFloat();
- r_fogred.value = MSG_ReadByte() * (1.0 / 255.0);
- r_foggreen.value = MSG_ReadByte() * (1.0 / 255.0);
- r_fogblue.value = MSG_ReadByte() * (1.0 / 255.0);
+ fog_density = MSG_ReadShort() * (1.0f / 4096.0f);
+ fog_red = MSG_ReadByte() * (1.0 / 255.0);
+ fog_green = MSG_ReadByte() * (1.0 / 255.0);
+ fog_blue = MSG_ReadByte() * (1.0 / 255.0);
}
else
- r_fogdensity.value = 0.0f;
+ fog_density = 0.0f;
break;
}
}