}
Tuba_Precache();
-#ifdef UID
- {
- // find the user ID
- string uid;
- registercvar("_cl_userid", "", CVAR_SAVE);
- uid = cvar_string("_cl_userid");
- if(strlen(uid) < 16)
- {
- uid = "";
- for(i = 0; i < 4; ++i)
- uid = strcat(uid, substring(ftos(floor(10000 + random() * 10000)), 1, -1));
- }
- cvar_set("_cl_userid", uid);
- localcmd(strcat("\ncmd uid ", uid, "\n"));
- }
-#endif
-
get_mi_min_max_texcoords(1); // try the CLEVER way first
minimapname = strcat("gfx/", mi_shortname, "_radar.tga");
shortmapname = mi_shortname;
remove(players);
db_close(binddb);
db_close(tempdb);
- db_save(ClientProgsDB, "client.db");
+ if(cvar("cl_db_saveasdump"))
+ db_dump(ClientProgsDB, "client.db");
+ else
+ db_save(ClientProgsDB, "client.db");
db_close(ClientProgsDB);
cvar_clientsettemp_restore();
self.angles = view_angles;
self.angles_x = -self.angles_x;
if not(self.cnt)
- R_AddEntity(self);
+ self.drawmask = MASK_NORMAL;
+ else
+ self.drawmask = 0;
}
void ShotOrg_Draw2D()
{
if(time - floor(time) > 0.5)
{
PolyDrawModel(self);
+ self.drawmask = 0;
}
else
{
self.renderflags = 0;
- R_AddEntity(self);
+ self.drawmask = MASK_NORMAL;
}
}
local float bSkipKey;
bSkipKey = false;
+ if(autocvar_cl_allow_uid2name == -1 && (gametype == GAME_CTS || gametype == GAME_RACE) && panel_fg_alpha && !scoreboard_active) // don't lock keys before we actually see what's going on
+ {
+ /*
+ string vyes_keys;
+ float keys;
+ vyes_keys = findkeysforcommand("vyes");
+ keys = tokenize(vyes_keys);
+
+ float i;
+ for (i = 0; i < keys; ++i)
+ {
+ print(ftos(nPrimary), " ", argv(i), "\n");
+ if(nPrimary == stof(argv(i)))
+ {
+ vote_active = 0;
+ cvar_set("cl_allow_uid2name", "1");
+ return TRUE;
+ }
+ }
+
+ string vno_keys;
+ vno_keys = findkeysforcommand("vno");
+ keys = tokenize(vno_keys);
+
+ float i;
+ for (i = 0; i < keys; ++i)
+ {
+ if(nPrimary == stof(argv(i)))
+ {
+ vote_active = 0;
+ cvar_set("cl_allow_uid2name", "0");
+ return TRUE;
+ }
+ }
+ */ // If only I could grab F1-F12 in CSQC... but no
+
+ if(nPrimary == 121) // ascii value for y
+ {
+ vote_active = 0;
+ cvar_set("cl_allow_uid2name", "1");
+ return TRUE;
+ }
+ else if(nPrimary == 110) // ascii value for n
+ {
+ vote_active = 0;
+ cvar_set("cl_allow_uid2name", "0");
+ return TRUE;
+ }
+ }
+
if (HUD_Panel_InputEvent(bInputType, nPrimary, nSecondary))
return true;
if(menu_visible)
if(menu_action(bInputType, nPrimary, nSecondary))
return TRUE;
+
return bSkipKey;
}
if(newspectatee_status != spectatee_status)
{
float i;
- // clear the weapon accuracy stats
- for(i = WEP_FIRST; i <= WEP_LAST; ++i) {
- weapon_hits[i] = 0;
- weapon_fired[i] = 0;
- }
// clear race stuff
race_laptime = 0;
psrandom(s);
}
+void Ent_ReadAccuracy(void)
+{
+ float sf, f, w, b;
+ sf = ReadInt24_t();
+ if(sf == 0)
+ {
+ for(w = 0; w <= WEP_LAST - WEP_FIRST; ++w)
+ weapon_accuracy[w] = -1;
+ return;
+ }
+
+ for(w = 0, f = 1; w <= WEP_LAST - WEP_FIRST; ++w, f *= 2)
+ {
+ if(sf & f)
+ {
+ b = ReadByte();
+ if(b == 0)
+ weapon_accuracy[w] = -1;
+ else if(b == 255)
+ weapon_accuracy[w] = 1.0; // no better error handling yet, sorry
+ else
+ weapon_accuracy[w] = (b - 1.0) / 100.0;
+ }
+ }
+}
+
// CSQC_Ent_Update : Called every frame that the server has indicated an update to the SSQC / CSQC entity has occured.
// The only parameter reflects if the entity is "new" to the client, meaning it just came into the client's PVS.
void Ent_RadarLink();
case ENT_CLIENT_HOOK: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_HOOK); break;
case ENT_CLIENT_LGBEAM: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_LGBEAM); break;
case ENT_CLIENT_GAUNTLET: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_GAUNTLET); break;
+ case ENT_CLIENT_ACCURACY: Ent_ReadAccuracy(); break;
default:
error(strcat("unknown entity type in CSQC_Ent_Update: ", ftos(self.enttype), "\n"));
break;
g_weaponswitchdelay = ReadByte() / 255.0;
- g_balance_grenadelauncher_secondary_bouncefactor = ReadCoord();
- g_balance_grenadelauncher_secondary_bouncestop = ReadCoord();
+ g_balance_grenadelauncher_bouncefactor = ReadCoord();
+ g_balance_grenadelauncher_bouncestop = ReadCoord();
+ g_balance_electro_secondary_bouncefactor = ReadCoord();
+ g_balance_electro_secondary_bouncestop = ReadCoord();
nex_scope = !ReadByte();
campingrifle_scope = !ReadByte();
+ serverflags = ReadByte();
+
if(!postinit)
PostInit();
}
Net_WeaponComplain();
bHandled = true;
break;
- case TE_CSQC_NEX_VELOCITY:
- nex_velocitydependent = ReadByte();
- nex_minvelocity = ReadShort();
- nex_maxvelocity = ReadShort();
- nex_speed_falloff_rate = ReadByte();
- nex_charge = ReadByte();
- nex_charge_rate = ReadByte();
- bHandled = true;
- break;
case TE_CSQC_CR_MAXBULLETS:
cr_maxbullets = ReadByte();
bHandled = true;