X-Git-Url: http://git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Fweapons%2Fweapon%2Fhlac.qc;h=f3a0463cc007052cf9425d3a20f2b34c5beb0a3e;hp=9449a24f17268999441f4d5cdab8a969909c9b12;hb=d87e55939b27a63c84577c87af8a087be6d02843;hpb=95da641845d520e3f59e5d47f418859a60704de7 diff --git a/qcsrc/common/weapons/weapon/hlac.qc b/qcsrc/common/weapons/weapon/hlac.qc index 9449a24f1..f3a0463cc 100644 --- a/qcsrc/common/weapons/weapon/hlac.qc +++ b/qcsrc/common/weapons/weapon/hlac.qc @@ -21,17 +21,16 @@ void W_HLAC_Touch(entity this, entity toucher) void W_HLAC_Attack(Weapon thiswep, entity actor, .entity weaponentity) { entity missile; - float spread; W_DecreaseAmmo(thiswep, actor, WEP_CVAR_PRI(hlac, ammo), weaponentity); - spread = WEP_CVAR_PRI(hlac, spread_min) + (WEP_CVAR_PRI(hlac, spread_add) * actor.(weaponentity).misc_bulletcounter); - spread = min(spread,WEP_CVAR_PRI(hlac, spread_max)); - if(actor.crouch) - spread = spread * WEP_CVAR_PRI(hlac, spread_crouchmod); + float spread = WEP_CVAR_PRI(hlac, spread_min) + (WEP_CVAR_PRI(hlac, spread_add) * actor.(weaponentity).misc_bulletcounter); + spread = min(spread,WEP_CVAR_PRI(hlac, spread_max)); + if(IS_DUCKED(actor)) + spread = spread * WEP_CVAR_PRI(hlac, spread_crouchmod); W_SetupShot(actor, weaponentity, false, 3, SND_LASERGUN_FIRE, CH_WEAPON_A, WEP_CVAR_PRI(hlac, damage), thiswep.m_id); - Send_Effect(EFFECT_BLASTER_MUZZLEFLASH, w_shotorg, w_shotdir * 1000, 1); + W_MuzzleFlash(thiswep, actor, weaponentity, w_shotorg, w_shotdir); if(!autocvar_g_norecoil) { actor.punchangle_x = random() - 0.5; @@ -42,7 +41,7 @@ void W_HLAC_Attack(Weapon thiswep, entity actor, .entity weaponentity) missile.owner = missile.realowner = actor; missile.bot_dodge = true; - missile.bot_dodgerating = WEP_CVAR_PRI(hlac, damage); + missile.bot_dodgerating = WEP_CVAR_PRI(hlac, damage); set_movetype(missile, MOVETYPE_FLY); PROJECTILE_MAKETRIGGER(missile); @@ -56,7 +55,7 @@ void W_HLAC_Attack(Weapon thiswep, entity actor, .entity weaponentity) settouch(missile, W_HLAC_Touch); setthink(missile, SUB_Remove); - missile.nextthink = time + WEP_CVAR_PRI(hlac, lifetime); + missile.nextthink = time + WEP_CVAR_PRI(hlac, lifetime); missile.flags = FL_PROJECTILE; IL_PUSH(g_projectiles, missile); @@ -72,22 +71,19 @@ void W_HLAC_Attack(Weapon thiswep, entity actor, .entity weaponentity) void W_HLAC_Attack2(Weapon thiswep, entity actor, .entity weaponentity) { entity missile; - float spread; + float spread = WEP_CVAR_SEC(hlac, spread); - spread = WEP_CVAR_SEC(hlac, spread); - - - if(actor.crouch) - spread = spread * WEP_CVAR_SEC(hlac, spread_crouchmod); + if(IS_DUCKED(actor)) + spread = spread * WEP_CVAR_SEC(hlac, spread_crouchmod); W_SetupShot(actor, weaponentity, false, 3, SND_LASERGUN_FIRE, CH_WEAPON_A, WEP_CVAR_SEC(hlac, damage), thiswep.m_id | HITTYPE_SECONDARY); - Send_Effect(EFFECT_BLASTER_MUZZLEFLASH, w_shotorg, w_shotdir * 1000, 1); + W_MuzzleFlash(thiswep, actor, weaponentity, w_shotorg, w_shotdir); missile = new(hlacbolt); missile.owner = missile.realowner = actor; missile.bot_dodge = true; - missile.bot_dodgerating = WEP_CVAR_SEC(hlac, damage); + missile.bot_dodgerating = WEP_CVAR_SEC(hlac, damage); set_movetype(missile, MOVETYPE_FLY); PROJECTILE_MAKETRIGGER(missile); @@ -101,7 +97,7 @@ void W_HLAC_Attack2(Weapon thiswep, entity actor, .entity weaponentity) settouch(missile, W_HLAC_Touch); setthink(missile, SUB_Remove); - missile.nextthink = time + WEP_CVAR_SEC(hlac, lifetime); + missile.nextthink = time + WEP_CVAR_SEC(hlac, lifetime); missile.flags = FL_PROJECTILE; IL_PUSH(g_projectiles, missile); @@ -127,18 +123,17 @@ void W_HLAC_Attack_Frame(Weapon thiswep, entity actor, .entity weaponentity, int if(PHYS_INPUT_BUTTON_ATCK(actor)) { if(!thiswep.wr_checkammo1(thiswep, actor, weaponentity)) - if(!(actor.items & IT_UNLIMITED_WEAPON_AMMO)) + if(!(actor.items & IT_UNLIMITED_AMMO)) { W_SwitchWeapon_Force(actor, w_getbestweapon(actor, weaponentity), weaponentity); w_ready(thiswep, actor, weaponentity, fire); return; } - int slot = weaponslot(weaponentity); - ATTACK_FINISHED(actor, slot) = time + WEP_CVAR_PRI(hlac, refire) * W_WeaponRateFactor(actor); + ATTACK_FINISHED(actor, weaponentity) = time + WEP_CVAR_PRI(hlac, refire) * W_WeaponRateFactor(actor); W_HLAC_Attack(thiswep, actor, weaponentity); actor.(weaponentity).misc_bulletcounter = actor.(weaponentity).misc_bulletcounter + 1; - weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(hlac, refire), W_HLAC_Attack_Frame); + weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(hlac, refire), W_HLAC_Attack_Frame); } else { @@ -148,12 +143,10 @@ void W_HLAC_Attack_Frame(Weapon thiswep, entity actor, .entity weaponentity, int void W_HLAC_Attack2_Frame(Weapon thiswep, entity actor, .entity weaponentity) { - float i; - W_DecreaseAmmo(thiswep, actor, WEP_CVAR_SEC(hlac, ammo), weaponentity); - for(i=WEP_CVAR_SEC(hlac, shots);i>0;--i) - W_HLAC_Attack2(thiswep, actor, weaponentity); + for(float i = WEP_CVAR_SEC(hlac, shots); i > 0; --i) + W_HLAC_Attack2(thiswep, actor, weaponentity); if(!autocvar_g_norecoil) { @@ -191,13 +184,13 @@ METHOD(HLAC, wr_think, void(entity thiswep, entity actor, .entity weaponentity, } METHOD(HLAC, wr_checkammo1, bool(entity thiswep, entity actor, .entity weaponentity)) { - float ammo_amount = GetResourceAmount(actor, thiswep.ammo_type) >= WEP_CVAR_PRI(hlac, ammo); + float ammo_amount = GetResource(actor, thiswep.ammo_type) >= WEP_CVAR_PRI(hlac, ammo); ammo_amount += actor.(weaponentity).(weapon_load[thiswep.m_id]) >= WEP_CVAR_PRI(hlac, ammo); return ammo_amount; } METHOD(HLAC, wr_checkammo2, bool(entity thiswep, entity actor, .entity weaponentity)) { - float ammo_amount = GetResourceAmount(actor, thiswep.ammo_type) >= WEP_CVAR_SEC(hlac, ammo); + float ammo_amount = GetResource(actor, thiswep.ammo_type) >= WEP_CVAR_SEC(hlac, ammo); ammo_amount += actor.(weaponentity).(weapon_load[thiswep.m_id]) >= WEP_CVAR_SEC(hlac, ammo); return ammo_amount; }