]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/cl_weaponsystem.qc
MOTD moved to notif system by mario
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / cl_weaponsystem.qc
index 8f510edff00bf700610370218907ffba6922f7ab..f697d3689c6247ab40a060198244fb147ade1673 100644 (file)
@@ -343,10 +343,10 @@ void CL_WeaponEntity_SetModel(string name)
 
                setmodel(self, strcat("models/weapons/h_", name, ".iqm")); // precision set below
                // preset some defaults that work great for renamed zym files (which don't need an animinfo)
-               self.anim_fire1  = animfixfps(self, '0 1 0.01');
-               self.anim_fire2  = animfixfps(self, '1 1 0.01');
-               self.anim_idle   = animfixfps(self, '2 1 0.01');
-               self.anim_reload = animfixfps(self, '3 1 0.01');
+               self.anim_fire1  = animfixfps(self, '0 1 0.01', '0 0 0');
+               self.anim_fire2  = animfixfps(self, '1 1 0.01', '0 0 0');
+               self.anim_idle   = animfixfps(self, '2 1 0.01', '0 0 0');
+               self.anim_reload = animfixfps(self, '3 1 0.01', '0 0 0');
 
                // if we have a "weapon" tag, let's attach the v_ model to it ("invisible hand" style model)
                // if we don't, this is a "real" animated model
@@ -578,7 +578,6 @@ void CL_Weaponentity_Think()
 void CL_ExteriorWeaponentity_Think()
 {
        float tag_found;
-       vector ang;
        self.nextthink = time;
        if (self.owner.exteriorweaponentity != self)
        {
@@ -609,10 +608,7 @@ void CL_ExteriorWeaponentity_Think()
                        setattachment(self, self.owner, "bip01 r hand");
        }
        self.effects = self.owner.effects;
-       if(sv_pitch_min == sv_pitch_max)
-               self.effects |= EF_LOWPRECISION;
-       else
-               self.effects &~= EF_LOWPRECISION;
+       self.effects |= EF_LOWPRECISION;
        self.effects = self.effects & EFMASK_CHEAP; // eat performance
        if(self.owner.alpha == default_player_alpha)
                self.alpha = default_weapon_alpha;
@@ -621,58 +617,6 @@ void CL_ExteriorWeaponentity_Think()
        else
                self.alpha = 1;
 
-       if (!intermission_running)
-       {
-               ang_x = bound(sv_pitch_min, self.owner.v_angle_x, sv_pitch_max);
-               ang_y = 0;
-               ang_z = 0;
-
-               if(sv_pitch_fixyaw) // workaround for stupid player models that don't aim forward
-               {
-                       ang_y = self.owner.v_angle_y;
-                       makevectors(ang);
-                       var vector v = v_forward;
-                       var float t = self.tag_entity.frame1time;
-                       var float f = self.tag_entity.frame;
-                       self.tag_entity.frame1time = time;
-                       self.tag_entity.frame = self.tag_entity.anim_idle_x;
-                       gettaginfo(self.tag_entity, self.tag_index);
-                       self.tag_entity.frame1time = t;
-                       self.tag_entity.frame = f;
-                       // untransform v according to this coordinate space
-                       vector w;
-                       w_x = v_forward * v;
-                       w_y = -v_right * v;
-                       w_z = v_up * v;
-                       self.angles = vectoangles(w);
-               }
-               else
-               {
-                       ang_x = -/* don't ask */ang_x;
-                       self.angles = ang;
-               }
-
-               if(autocvar_g_loituma)
-               {
-                       vector modangles;
-                       float t;
-
-                       t = time * autocvar_g_loituma;
-
-                       modangles_x = t * 360;
-                       modangles_y = 90;
-                       modangles_z = 0;
-
-                       self.angles =
-                               AnglesTransform_ToAngles(
-                                       AnglesTransform_Multiply(
-                                               AnglesTransform_FromAngles(self.angles),
-                                               AnglesTransform_FromAngles(modangles)
-                                       )
-                               );
-               }
-       }
-
        self.glowmod = self.owner.weaponentity_glowmod;
        self.colormap = self.owner.colormap;
 
@@ -1047,25 +991,17 @@ void weapon_thinkf(float fr, float t, void() func)
        self.weapon_think = func;
        //dprint("next ", ftos(self.weapon_nextthink), "\n");
 
-       // The shoot animation looks TERRIBLE without animation blending! Yay for moonwalking while shooting!
-       //anim = self.anim_shoot;
-       if (restartanim)
-       if (t)
-       if (!self.crouch) // shoot anim stands up, this looks bad
+       if((fr == WFRAME_FIRE1 || fr == WFRAME_FIRE2) && t)
        {
-               vector anim;
-               if(self.weapon == WEP_SHOTGUN && self.BUTTON_ATCK2)
-               {
-                       anim = self.anim_melee;
-                       anim_z = anim_y / (t + sys_frametime);
-                       setanim(self, anim, FALSE, TRUE, TRUE);
-               }
-               else if (self.animstate_startframe == self.anim_idle_x) // only allow shoot anim to override idle animation until we have animation blending
-               {
-                       anim = self.anim_shoot;
-                       anim_z = anim_y / (t + sys_frametime);
-                       setanim(self, anim, FALSE, TRUE, TRUE);
-               }
+               if(self.weapon == WEP_SHOTGUN && fr == WFRAME_FIRE2)
+                       animdecide_setaction(self, ANIMACTION_MELEE, restartanim);
+               else
+                       animdecide_setaction(self, ANIMACTION_SHOOT, restartanim);
+       }
+       else
+       {
+               if(self.anim_upper_action == ANIMACTION_SHOOT || self.anim_upper_action == ANIMACTION_MELEE)
+                       self.anim_upper_action = 0;
        }
 }