GetCvars_handleFloat(s, f, cvar_cl_noantilag, "cl_noantilag");
GetCvars_handleFloat(s, f, cvar_cl_voice_directional, "cl_voice_directional");
GetCvars_handleFloat(s, f, cvar_cl_voice_directional_taunt_attenuation, "cl_voice_directional_taunt_attenuation");
- GetCvars_handleFloat(s, f, cvar_cl_hitsound, "cl_hitsound");
GetCvars_handleFloat(s, f, cvar_cl_accuracy_data_share, "cl_accuracy_data_share");
GetCvars_handleFloat(s, f, cvar_cl_accuracy_data_receive, "cl_accuracy_data_receive");
#endif
GetCvars_handleFloatOnce(s, f, cvar_cl_gunalign, "cl_gunalign");
GetCvars_handleFloat(s, f, cvar_cl_allow_uid2name, "cl_allow_uid2name");
+ GetCvars_handleFloat(s, f, cvar_cl_allow_uidtracking, "cl_allow_uidtracking");
// fixup of switchweapon (needed for LMS or when spectating is disabled, as PutClientInServer comes too early)
if (f > 0)
t = (weaponinfo.spawnflags & WEP_FLAG_NORMAL);
else if(t < -1)
t = 0;
- else if (g_race)
- t = (i == WEP_LASER || i == WEP_SHOTGUN);
else if (g_cts)
t = (i == WEP_SHOTGUN);
else if (g_nexball)
g_weaponarena = 0;
s = cvar_string("g_weaponarena");
- if (s == "0")
+ if (s == "0" || s == "")
+ {
+ if(g_lms || g_ca)
+ s = "most";
+ }
+
+ if (s == "off")
{
+ // forcibly turn off weaponarena
}
else if (s == "all")
{
if (g_weaponarena)
{
start_weapons = g_weaponarena;
+ if(!(g_lms || g_ca))
+ start_items |= IT_UNLIMITED_AMMO;
+ }
+ else if (g_minstagib)
+ {
+ start_health = 100;
+ start_armorvalue = 0;
+ start_weapons = WEPBIT_MINSTANEX;
+ weapon_action(WEP_MINSTANEX, WR_PRECACHE);
+ g_minstagib_invis_alpha = cvar("g_minstagib_invis_alpha");
+
+ if (g_minstagib_invis_alpha <= 0)
+ g_minstagib_invis_alpha = -1;
+ }
+ else
+ {
+ for (i = WEP_FIRST; i <= WEP_LAST; ++i)
+ {
+ e = get_weaponinfo(i);
+ if(want_weapon("g_start_weapon_", e, FALSE))
+ start_weapons |= e.weapons;
+ }
+ }
+
+ if(!cvar("g_use_ammunition"))
+ start_items |= IT_UNLIMITED_AMMO;
+
+ if(g_minstagib)
+ {
+ start_ammo_cells = cvar("g_minstagib_ammo_start");
+ start_ammo_fuel = cvar("g_start_ammo_fuel");
+ }
+ else if(start_items & IT_UNLIMITED_WEAPON_AMMO)
+ {
for (j = WEP_FIRST; j <= WEP_LAST; ++j)
{
e = get_weaponinfo(j);
start_ammo_fuel = 999;
}
}
- start_items |= IT_UNLIMITED_AMMO;
- }
- else if (g_minstagib)
- {
- start_health = 100;
- start_armorvalue = 0;
- start_weapons = WEPBIT_MINSTANEX;
- weapon_action(WEP_MINSTANEX, WR_PRECACHE);
- start_ammo_cells = cvar("g_minstagib_ammo_start");
- g_minstagib_invis_alpha = cvar("g_minstagib_invis_alpha");
- start_ammo_fuel = cvar("g_start_ammo_fuel");
-
- if (g_minstagib_invis_alpha <= 0)
- g_minstagib_invis_alpha = -1;
}
else
{
- if (g_lms || g_ca)
+ if(g_lms || g_ca)
{
start_ammo_shells = cvar("g_lms_start_ammo_shells");
start_ammo_nails = cvar("g_lms_start_ammo_nails");
start_ammo_rockets = cvar("g_lms_start_ammo_rockets");
start_ammo_cells = cvar("g_lms_start_ammo_cells");
start_ammo_fuel = cvar("g_lms_start_ammo_fuel");
- start_health = cvar("g_lms_start_health");
- start_armorvalue = cvar("g_lms_start_armor");
}
else
{
start_ammo_cells = cvar("g_start_ammo_cells");
start_ammo_fuel = cvar("g_start_ammo_fuel");
}
+ }
- for (i = WEP_FIRST; i <= WEP_LAST; ++i)
- {
- e = get_weaponinfo(i);
- if(want_weapon("g_start_weapon_", e, FALSE))
- start_weapons |= e.weapons;
- }
+ if (g_lms || g_ca)
+ {
+ start_health = cvar("g_lms_start_health");
+ start_armorvalue = cvar("g_lms_start_armor");
}
if (inWarmupStage)
warmup_start_ammo_fuel = max(warmup_start_ammo_fuel, cvar("g_balance_fuel_rotstable"));
}
- if(!cvar("g_use_ammunition"))
- {
- start_ammo_shells = cvar("g_pickup_shells_max");
- start_ammo_nails = cvar("g_pickup_nails_max");
- start_ammo_rockets = cvar("g_pickup_rockets_max");
- start_ammo_cells = cvar("g_pickup_cells_max");
- start_ammo_fuel = cvar("g_pickup_fuel_max");
- start_items |= IT_UNLIMITED_AMMO;
- warmup_start_ammo_shells = cvar("g_pickup_shells_max");
- warmup_start_ammo_nails = cvar("g_pickup_nails_max");
- warmup_start_ammo_rockets = cvar("g_pickup_rockets_max");
- warmup_start_ammo_cells = cvar("g_pickup_cells_max");
- warmup_start_ammo_fuel = cvar("g_pickup_fuel_max");
- //warmup_start_items |= IT_UNLIMITED_AMMO;
- }
-
if (g_jetpack)
start_items |= IT_JETPACK;
float sv_pitch_max;
float sv_pitch_fixyaw;
+string GetGametype(); // g_world.qc
void readlevelcvars(void)
{
// first load all the mutators
precache_model(m);
if(sv_loddistance1)
{
- precache_model(strcat(substring(m, 0, -5), "_lod1", substring(m, -4, -1)));
- precache_model(strcat(substring(m, 0, -5), "_lod2", substring(m, -4, -1)));
+ f = strcat(substring(m, 0, -5), "_lod1", substring(m, -4, -1));
+ if(fexists(f))
+ precache_model(f);
+ f = strcat(substring(m, 0, -5), "_lod2", substring(m, -4, -1));
+ if(fexists(f))
+ precache_model(f);
}
globhandle = search_begin(strcat(m, "_*.sounds"), TRUE, FALSE);
precache_sound ("misc/gib_splat02.wav");
precache_sound ("misc/gib_splat03.wav");
precache_sound ("misc/gib_splat04.wav");
- precache_sound ("misc/hit.wav");
- precache_sound ("misc/typehit.wav");
PrecacheGlobalSound((globalsound_fall = "misc/hitground 4"));
PrecacheGlobalSound((globalsound_metalfall = "misc/metalhitground 4"));
precache_sound ("misc/null.wav");
// rule 6: we must not end up in trigger_hurt
if (tracebox_hits_trigger_hurt(start, e.mins, e.maxs, enddown))
- {
- dprint("trigger_hurt! ouch! and nothing else could find it!\n");
continue;
- }
break;
}
zcurveparticles(effectno, start, end, end_dz, vlen(vel));
}
-string GetGametype(); // g_world.qc
void write_recordmarker(entity pl, float tstart, float dt)
{
GameLogEcho(strcat(":recordset:", ftos(pl.playerid), ":", ftos(dt)));
float ParseCommandPlayerSlotTarget_firsttoken;
entity GetCommandPlayerSlotTargetFromTokenizedCommand(float tokens, float idx) // idx = start index
{
- string s;
- entity e, head;
- float n;
+ string s;
+ entity e, head;
+ float n;
- s = string_null;
+ s = string_null;
- ParseCommandPlayerSlotTarget_firsttoken = -1;
+ ParseCommandPlayerSlotTarget_firsttoken = -1;
- if (tokens > idx)
- {
- if (substring(argv(idx), 0, 1) == "#")
- {
- s = substring(argv(idx), 1, -1);
- ++idx;
- if (s == "")
- if (tokens > idx)
- {
- s = argv(idx);
- ++idx;
- }
+ if (tokens > idx)
+ {
+ if (substring(argv(idx), 0, 1) == "#")
+ {
+ s = substring(argv(idx), 1, -1);
+ ++idx;
+ if (s == "") if (tokens > idx)
+ {
+ s = argv(idx);
+ ++idx;
+ }
ParseCommandPlayerSlotTarget_firsttoken = idx;
- if (s == ftos(stof(s)))
- {
- e = edict_num(stof(s));
- if (e.flags & FL_CLIENT)
- return e;
- }
- }
- else
- {
- // it must be a nick name
- s = argv(idx);
- ++idx;
+ n = stof(s);
+ if (s == ftos(n) && n > 0 && n <= maxclients)
+ {
+ e = edict_num(n);
+ if (e.flags & FL_CLIENT)
+ return e;
+ }
+ }
+ else
+ {
+ // it must be a nick name
+ s = argv(idx);
+ ++idx;
ParseCommandPlayerSlotTarget_firsttoken = idx;
- n = 0;
- FOR_EACH_CLIENT(head)
- if (head.netname == s)
- {
- e = head;
- ++n;
- }
- if (n == 1)
- return e;
+ n = 0;
+ FOR_EACH_CLIENT(head)
+ if (head.netname == s)
+ {
+ e = head;
+ ++n;
+ }
+ if (n == 1)
+ return e;
- s = strdecolorize(s);
- n = 0;
- FOR_EACH_CLIENT(head)
- if (strdecolorize(head.netname) == s)
- {
- e = head;
- ++n;
- }
- if (n == 1)
- return e;
- }
- }
+ s = strdecolorize(s);
+ n = 0;
+ FOR_EACH_CLIENT(head)
+ if (strdecolorize(head.netname) == s)
+ {
+ e = head;
+ ++n;
+ }
+ if (n == 1)
+ return e;
+ }
+ }
- return world;
+ return world;
}
.float scale2;