if (!autocvar_con_chatrect)
cvar_set("con_chatrect", "1");
- cvar_set("con_chatrect_x", ftos(pos.x/vid_conwidth));
- cvar_set("con_chatrect_y", ftos(pos.y/vid_conheight));
-
- cvar_set("con_chatwidth", ftos(mySize.x/vid_conwidth));
- cvar_set("con_chat", ftos(floor(mySize.y/autocvar_con_chatsize - 0.5)));
+ // can't use a name ending with _x, _y and _z for a float autocvar as for autocvar specs
+ // it prevents ambiguity with component names of vector autocvars
+ if (cvar_string("con_chatrect_x") != ftos(pos.x / vid_conwidth))
+ cvar_set("con_chatrect_x", ftos(pos.x / vid_conwidth));
+ if (cvar_string("con_chatrect_y") != ftos(pos.y / vid_conheight))
+ cvar_set("con_chatrect_y", ftos(pos.y / vid_conheight));
+ // can't use direct comparison here, it would always returns true even if
+ // both arguments are equal because con_chatwidth is saved with cvar_set
+ //if (autocvar_con_chatwidth != mySize.x / vid_conwidth)
+ if (fabs(autocvar_con_chatwidth - mySize.x / vid_conwidth) > 0.00001)
+ cvar_set("con_chatwidth", ftos(mySize.x / vid_conwidth));
+ if (autocvar_con_chat != floor(mySize.y / autocvar_con_chatsize - 0.5))
+ cvar_set("con_chat", ftos(floor(mySize.y / autocvar_con_chatsize - 0.5)));
if(autocvar__hud_configure)
{
bool autocvar__con_chat_maximized;
bool autocvar_con_chat;
-bool autocvar_con_chatrect;
float autocvar_con_chatsize;
float autocvar_con_notify;
float autocvar_con_notifysize;
+
+bool autocvar_con_chatrect;
+//float autocvar_con_chatrect_x;
+//float autocvar_con_chatrect_y;
+float autocvar_con_chatwidth;
if (this.entnum != player_localnum + 1) return false;
csqcplayer = this;
csqcplayer_status = CSQCPLAYERSTATUS_FROMSERVER;
- cvar_settemp("cl_movement_replay", "0");
+ if (cvar("cl_movement_replay"))
+ cvar_settemp("cl_movement_replay", "0");
this.entremove = CSQCPlayer_Remove;
return true;
}