X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fweapons%2Fweapon%2Fdevastator.qc;h=aba1198755ba85f6723e74241e642ec12d03bc25;hb=733758fd5a2cdbb707b19bd9766524855f457656;hp=9dd08bb3e3bd91bec8c645e85523c0be8fc51dba;hpb=d5e16200b8442af1bbb9fc426b22e453035fa2f6;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/weapons/weapon/devastator.qc b/qcsrc/common/weapons/weapon/devastator.qc index 9dd08bb3e..aba119875 100644 --- a/qcsrc/common/weapons/weapon/devastator.qc +++ b/qcsrc/common/weapons/weapon/devastator.qc @@ -111,14 +111,15 @@ void W_Devastator_Explode(void) if(!(self.realowner.items & IT_UNLIMITED_WEAPON_AMMO)) { self.realowner.cnt = WEP_DEVASTATOR.m_id; - ATTACK_FINISHED(self.realowner) = time; + int slot = 0; // TODO: unhardcode + ATTACK_FINISHED(self.realowner, slot) = time; self.realowner.switchweapon = w_getbestweapon(self.realowner); } } remove(self); } -void W_Devastator_DoRemoteExplode(void) +void W_Devastator_DoRemoteExplode(int slot) {SELFPARAM(); W_Devastator_Unregister(); @@ -190,14 +191,14 @@ void W_Devastator_DoRemoteExplode(void) if(!(self.realowner.items & IT_UNLIMITED_WEAPON_AMMO)) { self.realowner.cnt = WEP_DEVASTATOR.m_id; - ATTACK_FINISHED(self.realowner) = time; + ATTACK_FINISHED(self.realowner, slot) = time; self.realowner.switchweapon = w_getbestweapon(self.realowner); } } remove(self); } -void W_Devastator_RemoteExplode(void) +void W_Devastator_RemoteExplode(int slot) {SELFPARAM(); if(self.realowner.deadflag == DEAD_NO) if(self.realowner.lastrocket) @@ -207,7 +208,7 @@ void W_Devastator_RemoteExplode(void) : (vlen(NearestPointOnBox(self.realowner, self.origin) - self.origin) > WEP_CVAR(devastator, remote_radius)) // safety device ) { - W_Devastator_DoRemoteExplode(); + W_Devastator_DoRemoteExplode(slot); } } } @@ -304,8 +305,9 @@ void W_Devastator_Think(void) } } + int slot = 0; // TODO: unhardcode if(self.rl_detonate_later) - W_Devastator_RemoteExplode(); + W_Devastator_RemoteExplode(slot); } if(self.csqcprojectile_clientanimate == 0) @@ -529,10 +531,10 @@ void W_Devastator_Attack(Weapon thiswep) if(fire & 1) { if(actor.rl_release || WEP_CVAR(devastator, guidestop)) - if(weapon_prepareattack(thiswep, actor, false, WEP_CVAR(devastator, refire))) + if(weapon_prepareattack(thiswep, actor, slot, false, WEP_CVAR(devastator, refire))) { W_Devastator_Attack(thiswep); - weapon_thinkf(actor, WFRAME_FIRE1, WEP_CVAR(devastator, animtime), w_ready); + weapon_thinkf(actor, slot, WFRAME_FIRE1, WEP_CVAR(devastator, animtime), w_ready); actor.rl_release = 0; } } @@ -569,7 +571,7 @@ void W_Devastator_Attack(Weapon thiswep) { #if 0 // don't switch while guiding a missile - if(ATTACK_FINISHED(self) <= time || self.weapon != WEP_DEVASTATOR.m_id) + if(ATTACK_FINISHED(self, slot) <= time || self.weapon != WEP_DEVASTATOR.m_id) { ammo_amount = false; if(WEP_CVAR(devastator, reload_ammo))