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_weaponarena & (WEPBIT_GRENADE_LAUNCHER | WEPBIT_MINE_LAYER | WEPBIT_HAGAR | WEPBIT_ROCKET_LAUNCHER))
- start_ammo_rockets = 999;
- if (g_weaponarena & WEPBIT_SHOTGUN)
- start_ammo_shells = 999;
- if (g_weaponarena & (WEPBIT_ELECTRO | WEPBIT_CRYLINK | WEPBIT_NEX | WEPBIT_MINSTANEX | WEPBIT_HLAC | WEPBIT_HOOK))
- start_ammo_cells = 999;
- if (g_weaponarena & (WEPBIT_UZI | WEPBIT_CAMPINGRIFLE))
- start_ammo_nails = 999;
- if (g_weaponarena & WEPBIT_HOOK)
- start_ammo_fuel = 999;
- start_items |= IT_UNLIMITED_AMMO;
+ if(!(g_lms || g_ca))
+ start_items |= IT_UNLIMITED_AMMO;
}
else if (g_minstagib)
{
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)
+ 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);
+ if(start_weapons & e.weapons)
+ {
+ if(e.items & IT_ROCKETS)
+ start_ammo_rockets = 999;
+ if(e.items & IT_SHELLS)
+ start_ammo_shells = 999;
+ if(e.items & IT_CELLS)
+ start_ammo_cells = 999;
+ if(e.items & IT_NAILS)
+ start_ammo_nails = 999;
+ if(e.items & IT_FUEL)
+ start_ammo_fuel = 999;
+ }
+ }
+ }
+ else
+ {
+ 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
sv_gentle = cvar("sv_gentle");
sv_foginterval = cvar("sv_foginterval");
g_cloaked = cvar("g_cloaked");
+ if(g_cts)
+ g_cloaked = 1; // always enable cloak in CTS
g_jump_grunt = cvar("g_jump_grunt");
g_footsteps = cvar("g_footsteps");
g_grappling_hook = cvar("g_grappling_hook");
g_pinata = cvar("g_pinata");
- g_weapon_stay = cvar("g_weapon_stay");
+ g_weapon_stay = cvar(strcat("g_", GetGametype(), "_weapon_stay"));
+ if(!g_weapon_stay)
+ g_weapon_stay = cvar("g_weapon_stay");
if (!g_weapon_stay && (cvar("deathmatch") == 2))
g_weapon_stay = 1;
- if (!g_weapon_stay && g_cts)
- g_weapon_stay = 1;
-
g_ghost_items = cvar("g_ghost_items");
if(g_ghost_items >= 1)
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);
// 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)));