remove(self);
return;
}
- if (self.owner.weaponentity.state != WS_INUSE || (self.owner.WEP_AMMO(WEP_ARC) <= 0 && !(self.owner.items & IT_UNLIMITED_WEAPON_AMMO)) || self.owner.deadflag != DEAD_NO || !self.owner.BUTTON_ATCK || self.owner.freezetag_frozen)
+ if (self.owner.weaponentity.state != WS_INUSE || (self.owner.WEP_AMMO(ARC) <= 0 && !(self.owner.items & IT_UNLIMITED_WEAPON_AMMO)) || self.owner.deadflag != DEAD_NO || !self.owner.BUTTON_ATCK || self.owner.freezetag_frozen)
{
if(self == self.owner.arc_beam)
self.owner.arc_beam = world;
{
if(WEP_CVAR_PRI(arc, ammo))
{
- dt = min(dt, self.owner.WEP_AMMO(WEP_ARC) / WEP_CVAR_PRI(arc, ammo));
- self.owner.WEP_AMMO(WEP_ARC) = max(0, self.owner.WEP_AMMO(WEP_ARC) - WEP_CVAR_PRI(arc, ammo) * frametime);
+ dt = min(dt, self.owner.WEP_AMMO(ARC) / WEP_CVAR_PRI(arc, ammo));
+ self.owner.WEP_AMMO(ARC) = max(0, self.owner.WEP_AMMO(ARC) - WEP_CVAR_PRI(arc, ammo) * frametime);
}
}
}
case WR_CHECKAMMO1:
{
- return !WEP_CVAR_PRI(arc, ammo) || (self.WEP_AMMO(WEP_ARC) > 0);
+ return !WEP_CVAR_PRI(arc, ammo) || (self.WEP_AMMO(ARC) > 0);
}
case WR_CHECKAMMO2:
{
- return self.WEP_AMMO(WEP_ARC) >= WEP_CVAR_SEC(arc, ammo);
+ return self.WEP_AMMO(ARC) >= WEP_CVAR_SEC(arc, ammo);
}
case WR_CONFIG:
{
if(self.crylink_lastgroup && self.crylink_waitrelease)
return TRUE;
- ammo_amount = self.WEP_AMMO(WEP_CRYLINK) >= WEP_CVAR_PRI(crylink, ammo);
+ ammo_amount = self.WEP_AMMO(CRYLINK) >= WEP_CVAR_PRI(crylink, ammo);
ammo_amount += self.(weapon_load[WEP_CRYLINK]) >= WEP_CVAR_PRI(crylink, ammo);
return ammo_amount;
}
if(self.crylink_lastgroup && self.crylink_waitrelease)
return TRUE;
- ammo_amount = self.WEP_AMMO(WEP_CRYLINK) >= WEP_CVAR_SEC(crylink, ammo);
+ ammo_amount = self.WEP_AMMO(CRYLINK) >= WEP_CVAR_SEC(crylink, ammo);
ammo_amount += self.(weapon_load[WEP_CRYLINK]) >= WEP_CVAR_SEC(crylink, ammo);
return ammo_amount;
}
if (self.realowner.weapon == WEP_DEVASTATOR)
{
- if(self.realowner.WEP_AMMO(WEP_DEVASTATOR) < WEP_CVAR(devastator, ammo))
+ if(self.realowner.WEP_AMMO(DEVASTATOR) < WEP_CVAR(devastator, ammo))
{
self.realowner.cnt = WEP_DEVASTATOR;
ATTACK_FINISHED(self.realowner) = time;
if (self.realowner.weapon == WEP_DEVASTATOR)
{
- if(self.realowner.WEP_AMMO(WEP_DEVASTATOR) < WEP_CVAR(devastator, ammo))
+ if(self.realowner.WEP_AMMO(DEVASTATOR) < WEP_CVAR(devastator, ammo))
{
self.realowner.cnt = WEP_DEVASTATOR;
ATTACK_FINISHED(self.realowner) = time;
ammo_amount = FALSE;
if(WEP_CVAR(devastator, reload_ammo))
{
- if(self.WEP_AMMO(WEP_DEVASTATOR) < WEP_CVAR(devastator, ammo) && self.(weapon_load[WEP_DEVASTATOR]) < WEP_CVAR(devastator, ammo))
+ if(self.WEP_AMMO(DEVASTATOR) < WEP_CVAR(devastator, ammo) && self.(weapon_load[WEP_DEVASTATOR]) < WEP_CVAR(devastator, ammo))
ammo_amount = TRUE;
}
- else if(self.WEP_AMMO(WEP_DEVASTATOR) < WEP_CVAR(devastator, ammo))
+ else if(self.WEP_AMMO(DEVASTATOR) < WEP_CVAR(devastator, ammo))
ammo_amount = TRUE;
return !ammo_amount;
}
}
case WR_CHECKAMMO1:
{
- ammo_amount = self.WEP_AMMO(WEP_ELECTRO) >= WEP_CVAR_PRI(electro, ammo);
+ ammo_amount = self.WEP_AMMO(ELECTRO) >= WEP_CVAR_PRI(electro, ammo);
ammo_amount += self.(weapon_load[WEP_ELECTRO]) >= WEP_CVAR_PRI(electro, ammo);
return ammo_amount;
}
{
if(WEP_CVAR(electro, combo_safeammocheck)) // true if you can fire at least one secondary blob AND one primary shot after it, otherwise false.
{
- ammo_amount = self.WEP_AMMO(WEP_ELECTRO) >= WEP_CVAR_SEC(electro, ammo) + WEP_CVAR_PRI(electro, ammo);
+ ammo_amount = self.WEP_AMMO(ELECTRO) >= WEP_CVAR_SEC(electro, ammo) + WEP_CVAR_PRI(electro, ammo);
ammo_amount += self.(weapon_load[WEP_ELECTRO]) >= WEP_CVAR_SEC(electro, ammo) + WEP_CVAR_PRI(electro, ammo);
}
else
{
- ammo_amount = self.WEP_AMMO(WEP_ELECTRO) >= WEP_CVAR_SEC(electro, ammo);
+ ammo_amount = self.WEP_AMMO(ELECTRO) >= WEP_CVAR_SEC(electro, ammo);
ammo_amount += self.(weapon_load[WEP_ELECTRO]) >= WEP_CVAR_SEC(electro, ammo);
}
return ammo_amount;
if(autocvar_g_balance_hagar_reload_ammo)
enough_ammo = self.(weapon_load[WEP_HAGAR]) >= WEP_CVAR_SEC(hagar, ammo);
else
- enough_ammo = self.WEP_AMMO(WEP_HAGAR) >= WEP_CVAR_SEC(hagar, ammo);
+ enough_ammo = self.WEP_AMMO(HAGAR) >= WEP_CVAR_SEC(hagar, ammo);
if(self.BUTTON_ATCK2)
{
}
case WR_CHECKAMMO1:
{
- ammo_amount = self.WEP_AMMO(WEP_HAGAR) >= WEP_CVAR_PRI(hagar, ammo);
+ ammo_amount = self.WEP_AMMO(HAGAR) >= WEP_CVAR_PRI(hagar, ammo);
ammo_amount += self.(weapon_load[WEP_HAGAR]) >= WEP_CVAR_PRI(hagar, ammo);
return ammo_amount;
}
case WR_CHECKAMMO2:
{
- ammo_amount = self.WEP_AMMO(WEP_HAGAR) >= WEP_CVAR_SEC(hagar, ammo);
+ ammo_amount = self.WEP_AMMO(HAGAR) >= WEP_CVAR_SEC(hagar, ammo);
ammo_amount += self.(weapon_load[WEP_HAGAR]) >= WEP_CVAR_SEC(hagar, ammo);
return ammo_amount;
}
}
case WR_CHECKAMMO1:
{
- ammo_amount = self.WEP_AMMO(WEP_HLAC) >= WEP_CVAR_PRI(hlac, ammo);
+ ammo_amount = self.WEP_AMMO(HLAC) >= WEP_CVAR_PRI(hlac, ammo);
ammo_amount += self.(weapon_load[WEP_HLAC]) >= WEP_CVAR_PRI(hlac, ammo);
return ammo_amount;
}
case WR_CHECKAMMO2:
{
- ammo_amount = self.WEP_AMMO(WEP_HLAC) >= WEP_CVAR_SEC(hlac, ammo);
+ ammo_amount = self.WEP_AMMO(HLAC) >= WEP_CVAR_SEC(hlac, ammo);
ammo_amount += self.(weapon_load[WEP_HLAC]) >= WEP_CVAR_SEC(hlac, ammo);
return ammo_amount;
}
case WR_CHECKAMMO1:
{
if(WEP_CVAR(machinegun, mode) == 1)
- ammo_amount = self.WEP_AMMO(WEP_MACHINEGUN) >= WEP_CVAR(machinegun, sustained_ammo);
+ ammo_amount = self.WEP_AMMO(MACHINEGUN) >= WEP_CVAR(machinegun, sustained_ammo);
else
- ammo_amount = self.WEP_AMMO(WEP_MACHINEGUN) >= WEP_CVAR(machinegun, first_ammo);
+ ammo_amount = self.WEP_AMMO(MACHINEGUN) >= WEP_CVAR(machinegun, first_ammo);
if(WEP_CVAR(machinegun, reload_ammo))
{
case WR_CHECKAMMO2:
{
if(WEP_CVAR(machinegun, mode) == 1)
- ammo_amount = self.WEP_AMMO(WEP_MACHINEGUN) >= WEP_CVAR(machinegun, burst_ammo);
+ ammo_amount = self.WEP_AMMO(MACHINEGUN) >= WEP_CVAR(machinegun, burst_ammo);
else
- ammo_amount = self.WEP_AMMO(WEP_MACHINEGUN) >= WEP_CVAR(machinegun, first_ammo);
+ ammo_amount = self.WEP_AMMO(MACHINEGUN) >= WEP_CVAR(machinegun, first_ammo);
if(WEP_CVAR(machinegun, reload_ammo))
{
if(autocvar_g_balance_minelayer_reload_ammo && self.clip_load < WEP_CVAR(minelayer, ammo)) // forced reload
{
// not if we're holding the minelayer without enough ammo, but can detonate existing mines
- if(!(W_MineLayer_PlacedMines(FALSE) && self.WEP_AMMO(WEP_MINE_LAYER) < WEP_CVAR(minelayer, ammo)))
+ if(!(W_MineLayer_PlacedMines(FALSE) && self.WEP_AMMO(MINE_LAYER) < WEP_CVAR(minelayer, ammo)))
WEP_ACTION(self.weapon, WR_RELOAD);
}
else if (self.BUTTON_ATCK)
// don't switch while placing a mine
if (ATTACK_FINISHED(self) <= time || self.weapon != WEP_MINE_LAYER)
{
- ammo_amount = self.WEP_AMMO(WEP_MINE_LAYER) >= WEP_CVAR(minelayer, ammo);
+ ammo_amount = self.WEP_AMMO(MINE_LAYER) >= WEP_CVAR(minelayer, ammo);
ammo_amount += self.(weapon_load[WEP_MINE_LAYER]) >= WEP_CVAR(minelayer, ammo);
return ammo_amount;
}
}
case WR_CHECKAMMO1:
{
- ammo_amount = self.WEP_AMMO(WEP_MORTAR) >= WEP_CVAR_PRI(mortar, ammo);
+ ammo_amount = self.WEP_AMMO(MORTAR) >= WEP_CVAR_PRI(mortar, ammo);
ammo_amount += self.(weapon_load[WEP_MORTAR]) >= WEP_CVAR_PRI(mortar, ammo);
return ammo_amount;
}
case WR_CHECKAMMO2:
{
- ammo_amount = self.WEP_AMMO(WEP_MORTAR) >= WEP_CVAR_SEC(mortar, ammo);
+ ammo_amount = self.WEP_AMMO(MORTAR) >= WEP_CVAR_SEC(mortar, ammo);
ammo_amount += self.(weapon_load[WEP_MORTAR]) >= WEP_CVAR_SEC(mortar, ammo);
return ammo_amount;
}
af = ATTACK_FINISHED(self);
self.switchweapon = self.weapon;
ATTACK_FINISHED(self) = time;
- print(ftos(self.WEP_AMMO(WEP_RIFLE)), "\n");
+ print(ftos(self.WEP_AMMO(RIFLE)), "\n");
r = weapon_prepareattack(self.rifle_bullethail_frame == WFRAME_FIRE2, self.rifle_bullethail_refire);
if(self.switchweapon == self.weapon)
self.switchweapon = sw;
}
case WR_CHECKAMMO1:
{
- ammo_amount = self.WEP_AMMO(WEP_RIFLE) >= WEP_CVAR_PRI(rifle, ammo);
+ ammo_amount = self.WEP_AMMO(RIFLE) >= WEP_CVAR_PRI(rifle, ammo);
ammo_amount += self.(weapon_load[WEP_RIFLE]) >= WEP_CVAR_PRI(rifle, ammo);
return ammo_amount;
}
case WR_CHECKAMMO2:
{
- ammo_amount = self.WEP_AMMO(WEP_RIFLE) >= WEP_CVAR_SEC(rifle, ammo);
+ ammo_amount = self.WEP_AMMO(RIFLE) >= WEP_CVAR_SEC(rifle, ammo);
ammo_amount += self.(weapon_load[WEP_RIFLE]) >= WEP_CVAR_SEC(rifle, ammo);
return ammo_amount;
}
entity oldself,oldenemy;
self.cnt = self.cnt - 1;
- if((!(self.realowner.items & IT_UNLIMITED_AMMO) && self.realowner.WEP_AMMO(WEP_SEEKER) < WEP_CVAR(seeker, missile_ammo)) || (self.cnt <= -1) || (self.realowner.deadflag != DEAD_NO) || (self.realowner.switchweapon != WEP_SEEKER))
+ if((!(self.realowner.items & IT_UNLIMITED_AMMO) && self.realowner.WEP_AMMO(SEEKER) < WEP_CVAR(seeker, missile_ammo)) || (self.cnt <= -1) || (self.realowner.deadflag != DEAD_NO) || (self.realowner.switchweapon != WEP_SEEKER))
{
remove(self);
return;
{
if (WEP_CVAR(seeker, type) == 1)
{
- ammo_amount = self.WEP_AMMO(WEP_SEEKER) >= WEP_CVAR(seeker, missile_ammo);
+ ammo_amount = self.WEP_AMMO(SEEKER) >= WEP_CVAR(seeker, missile_ammo);
ammo_amount += self.(weapon_load[WEP_SEEKER]) >= WEP_CVAR(seeker, missile_ammo);
}
else
{
- ammo_amount = self.WEP_AMMO(WEP_SEEKER) >= WEP_CVAR(seeker, tag_ammo);
+ ammo_amount = self.WEP_AMMO(SEEKER) >= WEP_CVAR(seeker, tag_ammo);
ammo_amount += self.(weapon_load[WEP_SEEKER]) >= WEP_CVAR(seeker, tag_ammo);
}
return ammo_amount;
{
if (WEP_CVAR(seeker, type) == 1)
{
- ammo_amount = self.WEP_AMMO(WEP_SEEKER) >= WEP_CVAR(seeker, tag_ammo);
+ ammo_amount = self.WEP_AMMO(SEEKER) >= WEP_CVAR(seeker, tag_ammo);
ammo_amount += self.(weapon_load[WEP_SEEKER]) >= WEP_CVAR(seeker, tag_ammo);
}
else
{
- ammo_amount = self.WEP_AMMO(WEP_SEEKER) >= WEP_CVAR(seeker, flac_ammo);
+ ammo_amount = self.WEP_AMMO(SEEKER) >= WEP_CVAR(seeker, flac_ammo);
ammo_amount += self.(weapon_load[WEP_SEEKER]) >= WEP_CVAR(seeker, flac_ammo);
}
return ammo_amount;
{
case WR_AIM:
{
- if(self.WEP_AMMO(WEP_VAPORIZER) > 0)
+ if(self.WEP_AMMO(VAPORIZER) > 0)
self.BUTTON_ATCK = bot_aim(1000000, 0, 1, FALSE);
else
self.BUTTON_ATCK2 = bot_aim(WEP_CVAR_SEC(vaporizer, speed), 0, WEP_CVAR_SEC(vaporizer, lifetime), FALSE); // WEAPONTODO: replace with proper vaporizer cvars
}
case WR_SETUP:
{
- self.ammo_field = WEP_AMMO(WEP_VAPORIZER);
+ self.ammo_field = WEP_AMMO(VAPORIZER);
self.vaporizer_lasthit = 0;
return TRUE;
}
case WR_CHECKAMMO1:
{
- ammo_amount = self.WEP_AMMO(WEP_VAPORIZER) >= vaporizer_ammo;
+ ammo_amount = self.WEP_AMMO(VAPORIZER) >= vaporizer_ammo;
ammo_amount += self.(weapon_load[WEP_VAPORIZER]) >= vaporizer_ammo;
return ammo_amount;
}
{
if(!WEP_CVAR_SEC(vaporizer, ammo))
return TRUE;
- ammo_amount = self.WEP_AMMO(WEP_VAPORIZER) >= WEP_CVAR_SEC(vaporizer, ammo);
+ ammo_amount = self.WEP_AMMO(VAPORIZER) >= WEP_CVAR_SEC(vaporizer, ammo);
ammo_amount += self.(weapon_load[WEP_VAPORIZER]) >= WEP_CVAR_SEC(vaporizer, ammo);
return ammo_amount;
}
}
else
{
- dt = min(dt, (self.WEP_AMMO(WEP_VORTEX) - WEP_CVAR_PRI(vortex, ammo)) / WEP_CVAR_SEC(vortex, ammo));
+ dt = min(dt, (self.WEP_AMMO(VORTEX) - WEP_CVAR_PRI(vortex, ammo)) / WEP_CVAR_SEC(vortex, ammo));
dt = max(0, dt);
if(dt > 0)
{
- self.WEP_AMMO(WEP_VORTEX) = max(WEP_CVAR_SEC(vortex, ammo), self.WEP_AMMO(WEP_VORTEX) - WEP_CVAR_SEC(vortex, ammo) * dt);
+ self.WEP_AMMO(VORTEX) = max(WEP_CVAR_SEC(vortex, ammo), self.WEP_AMMO(VORTEX) - WEP_CVAR_SEC(vortex, ammo) * dt);
}
}
}
}
case WR_CHECKAMMO1:
{
- ammo_amount = self.WEP_AMMO(WEP_VORTEX) >= WEP_CVAR_PRI(vortex, ammo);
+ ammo_amount = self.WEP_AMMO(VORTEX) >= WEP_CVAR_PRI(vortex, ammo);
ammo_amount += (autocvar_g_balance_vortex_reload_ammo && self.(weapon_load[WEP_VORTEX]) >= WEP_CVAR_PRI(vortex, ammo));
return ammo_amount;
}
if(WEP_CVAR(vortex, secondary))
{
// don't allow charging if we don't have enough ammo
- ammo_amount = self.WEP_AMMO(WEP_VORTEX) >= WEP_CVAR_SEC(vortex, ammo);
+ ammo_amount = self.WEP_AMMO(VORTEX) >= WEP_CVAR_SEC(vortex, ammo);
ammo_amount += self.(weapon_load[WEP_VORTEX]) >= WEP_CVAR_SEC(vortex, ammo);
return ammo_amount;
}
// other useful macros
#define WEP_ACTION(wpn,wrequest) (get_weaponinfo(wpn)).weapon_func(wrequest)
-#define WEP_AMMO(wpn) ((get_weaponinfo(wpn)).ammo_field)
+#define WEP_AMMO(wpn) ((get_weaponinfo(WEP_##wpn)).ammo_field)
// ======================