float g_nix_with_laser;
-
+// WEAPONTODO
float nix_weapon;
float nix_weapon_ammo;
float nix_nextchange;
return FALSE;
if(g_weaponarena)
{
- if not(WEPSET_CONTAINS_AW(g_weaponarena_weapons, wpn))
+ if(!(g_weaponarena_weapons & WepSet_FromWeapon(wpn)))
return FALSE;
}
else
{
- if(wpn == WEP_LASER && g_nix_with_laser)
+ if(wpn == WEP_BLASTER && g_nix_with_laser) // WEAPONTODO: rename to g_nix_with_blaster
return FALSE;
if(e.spawnflags & WEP_FLAG_MUTATORBLOCKED)
return FALSE;
- if not(e.spawnflags & WEP_FLAG_NORMAL)
+ if (!(e.spawnflags & WEP_FLAG_NORMAL))
return FALSE;
}
return TRUE;
nix_nextchange = time; // start the first round now!
else
nix_nextchange = time + autocvar_g_balance_nix_roundtime;
- //weapon_action(nix_weapon, WR_PRECACHE); // forget it, too slow
+ //WEP_ACTION(nix_weapon, WR_INIT); // forget it, too slow
}
if(nix_nextchange != self.nix_lastchange_id) // this shall only be called once per round!
if(dt >= 1 && dt <= 5)
self.nix_lastinfotime = -42;
else
- Send_CSQC_Centerprint_Generic(self, CPID_NIX_WPNCHANGE, strcat("^2Active weapon: ^3", W_Name(nix_weapon)), 0, 0);
+ Send_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER, CENTER_NIX_NEWWEAPON, nix_weapon);
- weapon_action(nix_weapon, WR_RESETPLAYER);
+ WEP_ACTION(nix_weapon, WR_RESETPLAYER);
// all weapons must be fully loaded when we spawn
entity e;
e = get_weaponinfo(nix_weapon);
if(e.spawnflags & WEP_FLAG_RELOADABLE) // prevent accessing undefined cvars
- self.(weapon_load[nix_weapon]) = cvar(strcat("g_balance_", e.netname, "_reload_ammo"));
+ self.(weapon_load[nix_weapon]) = e.reloading_ammo;
// nex too
- if(autocvar_g_balance_nex_charge)
+ if(WEP_CVAR(vortex, charge))
{
- if(autocvar_g_balance_nex_secondary_chargepool)
- self.nex_chargepool_ammo = 1;
- self.nex_charge = autocvar_g_balance_nex_charge_start;
+ if(WEP_CVAR_SEC(vortex, chargepool))
+ self.vortex_chargepool_ammo = 1;
+ self.vortex_charge = WEP_CVAR(vortex, charge_start);
}
}
if(self.nix_lastinfotime != dt)
{
self.nix_lastinfotime = dt; // initial value 0 should count as "not seen"
if(dt >= 1 && dt <= 5)
- Send_CSQC_Centerprint_Generic(self, CPID_NIX_WPNCHANGE, strcat("^3%d^2 seconds until weapon change...\n\nNext weapon: ^3", W_Name(nix_nextweapon)), 1, dt);
+ Send_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER, CENTER_NIX_COUNTDOWN, nix_nextweapon, dt);
}
if(!(self.items & IT_UNLIMITED_WEAPON_AMMO) && time > self.nix_nextincr)
self.nix_nextincr = time + autocvar_g_balance_nix_incrtime;
}
- WEPSET_CLEAR_E(self);
+ self.weapons = '0 0 0';
if(g_nix_with_laser)
- WEPSET_ANDNOT_EW(self, WEP_LASER);
- WEPSET_OR_EW(self, nix_weapon);
+ self.weapons &= ~WEPSET_BLASTER;
+ self.weapons |= WepSet_FromWeapon(nix_weapon);
if(self.switchweapon != nix_weapon)
if(!client_hasweapon(self, self.switchweapon, TRUE, FALSE))
float i;
for (i = WEP_FIRST; i <= WEP_LAST; ++i)
if (NIX_CanChooseWeapon(i))
- weapon_action(i, WR_PRECACHE);
+ WEP_ACTION(i, WR_INIT);
}
MUTATOR_HOOKFUNCTION(nix_ForbidThrowCurrentWeapon)
{
if(!intermission_running)
if(self.deadflag == DEAD_NO)
- if(self.classname == "player")
+ if(IS_PLAYER(self))
NIX_GiveCurrentWeapon();
return 0;
}
e.ammo_nails = start_ammo_nails;
e.ammo_rockets = start_ammo_rockets;
e.ammo_fuel = start_ammo_fuel;
- WEPSET_COPY_EA(e, start_weapons);
+ e.weapons = start_weapons;
if(!client_hasweapon(e, e.weapon, TRUE, FALSE))
e.switchweapon = w_getbestweapon(self);
}