string ammoitems = "batteries";
switch (wep.ammo_type)
{
- case RESOURCE_SHELLS: ammoitems = ITEM_Shells.m_name; break;
- case RESOURCE_BULLETS: ammoitems = ITEM_Bullets.m_name; break;
- case RESOURCE_ROCKETS: ammoitems = ITEM_Rockets.m_name; break;
- case RESOURCE_CELLS: ammoitems = ITEM_Cells.m_name; break;
- case RESOURCE_PLASMA: ammoitems = ITEM_Plasma.m_name; break;
- case RESOURCE_FUEL: ammoitems = ITEM_JetpackFuel.m_name; break;
+ case RES_SHELLS: ammoitems = ITEM_Shells.m_name; break;
+ case RES_BULLETS: ammoitems = ITEM_Bullets.m_name; break;
+ case RES_ROCKETS: ammoitems = ITEM_Rockets.m_name; break;
+ case RES_CELLS: ammoitems = ITEM_Cells.m_name; break;
+ case RES_PLASMA: ammoitems = ITEM_Plasma.m_name; break;
+ case RES_FUEL: ammoitems = ITEM_JetpackFuel.m_name; break;
}
return ammoitems;
}
case "%": replacement = "%"; break;
case "\\":replacement = "\\"; break;
case "n": replacement = "\n"; break;
- case "a": replacement = ftos(floor(GetResourceAmount(this, RESOURCE_ARMOR))); break;
- case "h": replacement = ftos(floor(GetResourceAmount(this, RESOURCE_HEALTH))); break;
+ case "a": replacement = ftos(floor(GetResource(this, RES_ARMOR))); break;
+ case "h": replacement = ftos(floor(GetResource(this, RES_HEALTH))); break;
case "l": replacement = NearestLocation(this.origin); break;
case "y": replacement = NearestLocation(cursor); break;
case "d": replacement = NearestLocation(this.death_origin); break;
REPLICATE(cvar_cl_cts_noautoswitch, bool, "cl_cts_noautoswitch");
+REPLICATE(cvar_cl_weapon_switch_reload, bool, "cl_weapon_switch_reload");
+
+REPLICATE(cvar_cl_weapon_switch_fallback_to_impulse, bool, "cl_weapon_switch_fallback_to_impulse");
+
/**
* @param f -1: cleanup, 0: request, 1: receive
*/
allow_mutatorblocked = M_ARGV(3, bool);
if(allguns)
- {
- if(weaponinfo.spawnflags & WEP_FLAG_NORMAL)
- d = true;
- else
- d = false;
- }
+ d = boolean(weaponinfo.spawnflags & WEP_FLAG_NORMAL);
else if(!mutator_returnvalue)
d = !(!weaponinfo.weaponstart);
return t;
}
+void weaponarena_available_update(entity this)
+{
+ if(!weaponsInMap)
+ {
+ // if no weapons are available, just fall back to most weapons arena
+ FOREACH(Weapons, it != WEP_Null, {
+ if(!(it.spawnflags & WEP_FLAG_MUTATORBLOCKED) && (it.spawnflags & WEP_FLAG_NORMAL) && !(it.spawnflags & WEP_FLAG_HIDDEN))
+ g_weaponarena_weapons |= (it.m_wepset);
+ });
+ start_weapons = g_weaponarena_weapons;
+ return;
+ }
+ g_weaponarena_weapons |= weaponsInMap;
+ start_weapons = g_weaponarena_weapons;
+}
+
void readplayerstartcvars()
{
float i, t;
g_weaponarena = 1;
g_weaponarena_list = "Most Weapons";
FOREACH(Weapons, it != WEP_Null, {
- if(!(it.spawnflags & WEP_FLAG_MUTATORBLOCKED))
- if(it.spawnflags & WEP_FLAG_NORMAL)
- g_weaponarena_weapons |= (it.m_wepset);
+ if(!(it.spawnflags & WEP_FLAG_MUTATORBLOCKED) && (it.spawnflags & WEP_FLAG_NORMAL) && !(it.spawnflags & WEP_FLAG_HIDDEN))
+ g_weaponarena_weapons |= (it.m_wepset);
});
}
+ else if (s == "available")
+ {
+ g_weaponarena = 2;
+ g_weaponarena_list = "Most Weapons";
+ // include weapons the player would start with
+ FOREACH(Weapons, it != WEP_Null, {
+ int w = want_weapon(it, false);
+ if(w & 1)
+ g_weaponarena_weapons |= (it.m_wepset);
+ });
+ InitializeEntity(NULL, weaponarena_available_update, INITPRIO_FINDTARGET);
+ }
else if (s == "none")
{
g_weaponarena = 1;
start_ammo_plasma = cvar("g_start_ammo_plasma");
start_ammo_fuel = cvar("g_start_ammo_fuel");
random_start_weapons_count = cvar("g_random_start_weapons_count");
- SetResourceAmount(random_start_ammo, RESOURCE_SHELLS, cvar(
+ SetResource(random_start_ammo, RES_SHELLS, cvar(
"g_random_start_shells"));
- SetResourceAmount(random_start_ammo, RESOURCE_BULLETS, cvar(
+ SetResource(random_start_ammo, RES_BULLETS, cvar(
"g_random_start_bullets"));
- SetResourceAmount(random_start_ammo, RESOURCE_ROCKETS,
+ SetResource(random_start_ammo, RES_ROCKETS,
cvar("g_random_start_rockets"));
- SetResourceAmount(random_start_ammo, RESOURCE_CELLS, cvar(
+ SetResource(random_start_ammo, RES_CELLS, cvar(
"g_random_start_cells"));
- SetResourceAmount(random_start_ammo, RESOURCE_PLASMA, cvar(
+ SetResource(random_start_ammo, RES_PLASMA, cvar(
"g_random_start_plasma"));
}
warmup_start_ammo_fuel = max(warmup_start_ammo_fuel, cvar("g_balance_fuel_rotstable"));
}
- WepSet precache_weapons = start_weapons;
- if (g_warmup_allguns != 1)
- precache_weapons |= warmup_start_weapons;
- FOREACH(Weapons, it != WEP_Null, {
- if(precache_weapons & (it.m_wepset))
- it.wr_init(it);
- });
-
start_ammo_shells = max(0, start_ammo_shells);
start_ammo_nails = max(0, start_ammo_nails);
start_ammo_rockets = max(0, start_ammo_rockets);
start_ammo_cells = max(0, start_ammo_cells);
start_ammo_plasma = max(0, start_ammo_plasma);
start_ammo_fuel = max(0, start_ammo_fuel);
- SetResourceAmount(random_start_ammo, RESOURCE_SHELLS, max(0,
- GetResourceAmount(random_start_ammo, RESOURCE_SHELLS)));
- SetResourceAmount(random_start_ammo, RESOURCE_BULLETS, max(0,
- GetResourceAmount(random_start_ammo, RESOURCE_BULLETS)));
- SetResourceAmount(random_start_ammo, RESOURCE_ROCKETS, max(0,
- GetResourceAmount(random_start_ammo, RESOURCE_ROCKETS)));
- SetResourceAmount(random_start_ammo, RESOURCE_CELLS, max(0,
- GetResourceAmount(random_start_ammo, RESOURCE_CELLS)));
- SetResourceAmount(random_start_ammo, RESOURCE_PLASMA, max(0,
- GetResourceAmount(random_start_ammo, RESOURCE_PLASMA)));
+ SetResource(random_start_ammo, RES_SHELLS, max(0,
+ GetResource(random_start_ammo, RES_SHELLS)));
+ SetResource(random_start_ammo, RES_BULLETS, max(0,
+ GetResource(random_start_ammo, RES_BULLETS)));
+ SetResource(random_start_ammo, RES_ROCKETS, max(0,
+ GetResource(random_start_ammo, RES_ROCKETS)));
+ SetResource(random_start_ammo, RES_CELLS, max(0,
+ GetResource(random_start_ammo, RES_CELLS)));
+ SetResource(random_start_ammo, RES_PLASMA, max(0,
+ GetResource(random_start_ammo, RES_PLASMA)));
warmup_start_ammo_shells = max(0, warmup_start_ammo_shells);
warmup_start_ammo_nails = max(0, warmup_start_ammo_nails);