]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/weapons/weapon/arc.qc
Merge branch 'drjaska/frozenarcfix' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / weapons / weapon / arc.qc
index c74f6079aa00c8fbbd779f13ae459d4a05948d52..c4c396fce597d44f796b826ccfebeb41a95a9307 100644 (file)
@@ -213,6 +213,8 @@ void W_Arc_Beam_Think(entity this)
                ||
                IS_DEAD(own)
                ||
+                STAT(FROZEN, own)
+                ||
                game_stopped
                ||
                !weapon_prepareattack_check(thiswep, own, weaponentity, this.beam_bursting, -1)
@@ -687,7 +689,7 @@ METHOD(Arc, wr_think, void(entity thiswep, entity actor, .entity weaponentity, i
     {
         if(weapon_prepareattack(thiswep, actor, weaponentity, true, 0))
         {
-               if(!thiswep.wr_checkammo2(thiswep, actor, weaponentity))
+            if(!thiswep.wr_checkammo2(thiswep, actor, weaponentity))
             if(!(actor.items & IT_UNLIMITED_AMMO))
             {
                 W_SwitchWeapon_Force(actor, w_getbestweapon(actor, weaponentity), weaponentity);
@@ -938,7 +940,14 @@ void Draw_ArcBeam(entity this)
                // into a weapon system for client code.
 
                // find where we are aiming
-               vector myviewangle = ((autocvar_chase_active) ? warpzone_save_view_angles : view_angles);
+               vector myviewangle = view_angles;
+               if (autocvar_chase_active)
+               {
+                       if (autocvar_cl_lockview)
+                               myviewangle = eX * csqcplayer.v_angle.x + eY * csqcplayer.angles.y;
+                       else
+                               myviewangle = warpzone_save_view_angles;
+               }
                vector forward, right, up;
                MAKE_VECTORS(myviewangle, forward, right, up);
                entity wepent = viewmodels[this.beam_slot];