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;
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);