]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Make a few more weapons work properly in secondary slots
authorMario <mario@smbclan.net>
Thu, 29 Sep 2016 13:57:39 +0000 (23:57 +1000)
committerMario <mario@smbclan.net>
Thu, 29 Sep 2016 13:57:39 +0000 (23:57 +1000)
qcsrc/common/weapons/weapon/minelayer.qc
qcsrc/common/weapons/weapon/shockwave.qc
qcsrc/common/weapons/weapon/vaporizer.qc

index 89141b17f799dd0519e3c28ea1947dce2ee44243..dd75963661def50405df14d1fa5771f7b1c7b06a 100644 (file)
@@ -72,6 +72,7 @@ void W_MineLayer_Stick(entity this, entity to)
 
        entity newmine = spawn();
        IL_PUSH(g_mines, newmine);
+       newmine.weaponentity_fld = this.weaponentity_fld;
        newmine.classname = this.classname;
 
        newmine.bot_dodge = this.bot_dodge;
index ea756dfc762be0dcd496b58a98b0d883aac9ed62..8dd56d940b48063c2038d443f8b49729f078a46d 100644 (file)
@@ -706,12 +706,12 @@ METHOD(Shockwave, wr_think, void(entity thiswep, entity actor, .entity weaponent
 {
     if(fire & 1)
     {
-        if(time >= actor.shockwave_blasttime) // handle refire separately so the secondary can be fired straight after a primary
+        if(time >= actor.(weaponentity).shockwave_blasttime) // handle refire separately so the secondary can be fired straight after a primary
         {
             if(weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR(shockwave, blast_animtime)))
             {
                 W_Shockwave_Attack(actor, weaponentity);
-                actor.shockwave_blasttime = time + WEP_CVAR(shockwave, blast_refire) * W_WeaponRateFactor(actor);
+                actor.(weaponentity).shockwave_blasttime = time + WEP_CVAR(shockwave, blast_refire) * W_WeaponRateFactor(actor);
                 weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR(shockwave, blast_animtime), w_ready);
             }
         }
index 25464b2439d669646faa408d0f68c47a3d433b7b..5a9a8735fb96f6f0eace1329680e78686de25f5f 100644 (file)
@@ -380,27 +380,27 @@ METHOD(Vaporizer, wr_think, void(entity thiswep, entity actor, .entity weaponent
         if((autocvar_g_rm && autocvar_g_rm_laser) || autocvar_g_rm_laser == 2)
         {
             bool rapid = autocvar_g_rm_laser_rapid;
-            if(actor.jump_interval <= time && !actor.held_down)
+            if(actor.(weaponentity).jump_interval <= time && !actor.(weaponentity).held_down)
             {
                 if(rapid)
-                    actor.held_down = true;
-                actor.jump_interval = time + autocvar_g_rm_laser_refire;
-                actor.jump_interval2 = time + autocvar_g_rm_laser_rapid_delay;
+                    actor.(weaponentity).held_down = true;
+                actor.(weaponentity).jump_interval = time + autocvar_g_rm_laser_refire;
+                actor.(weaponentity).jump_interval2 = time + autocvar_g_rm_laser_rapid_delay;
                 damage_goodhits = 0;
                 W_RocketMinsta_Attack2(actor, weaponentity);
             }
-            else if(rapid && actor.jump_interval2 <= time && actor.held_down)
+            else if(rapid && actor.(weaponentity).jump_interval2 <= time && actor.(weaponentity).held_down)
             {
-                actor.jump_interval2 = time + autocvar_g_rm_laser_rapid_refire;
+                actor.(weaponentity).jump_interval2 = time + autocvar_g_rm_laser_rapid_refire;
                 damage_goodhits = 0;
                 W_RocketMinsta_Attack3(actor, weaponentity);
                 //weapon_thinkf(actor, WFRAME_FIRE2, autocvar_g_rm_laser_rapid_animtime, w_ready);
             }
         }
-        else if (actor.jump_interval <= time)
+        else if (actor.(weaponentity).jump_interval <= time)
         {
             // handle refire manually, so that primary and secondary can be fired without conflictions (important for instagib)
-            actor.jump_interval = time + WEP_CVAR_SEC(vaporizer, refire) * W_WeaponRateFactor(actor);
+            actor.(weaponentity).jump_interval = time + WEP_CVAR_SEC(vaporizer, refire) * W_WeaponRateFactor(actor);
 
             // decrease ammo for the laser?
             if(WEP_CVAR_SEC(vaporizer, ammo))
@@ -431,7 +431,7 @@ METHOD(Vaporizer, wr_think, void(entity thiswep, entity actor, .entity weaponent
         }
     }
     else
-        actor.held_down = false;
+        actor.(weaponentity).held_down = false;
 }
 METHOD(Vaporizer, wr_setup, void(entity thiswep, entity actor))
 {