]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
fix some more bugs. cl_csad now performs animation on the client.
authorRudolf Polzer <divverent@xonotic.org>
Thu, 22 Nov 2012 16:08:46 +0000 (17:08 +0100)
committerRudolf Polzer <divverent@xonotic.org>
Thu, 22 Nov 2012 16:08:46 +0000 (17:08 +0100)
qcsrc/client/csqcmodel_hooks.qc
qcsrc/common/animdecide.qc

index 18418e968be80efa19e3692ea5245a1c62cf40f5..9a3d0a2403908d2720c1350f5f12b5ad8e2b5696 100644 (file)
@@ -609,6 +609,7 @@ void CSQCModel_Hook_PreDraw(float isplayer)
                                if(trace_startsolid || trace_fraction < 1)
                                        flg |= FL_ONGROUND;
                        }
+                       animdecide_init(self); // FIXME only do this on model change
                        animdecide_setframes(self, flg, doblend, anim_frame, anim_frame1time, anim_frame2, anim_frame2time);
                        float sf = 0;
                        if(self.anim_saveframe != self.anim_frame || self.anim_saveframe1time != self.anim_frame1time)
@@ -625,7 +626,7 @@ void CSQCModel_Hook_PreDraw(float isplayer)
                                self.lerpfrac = (doblend ? 0.5 : 0);
                                self.frame = self.anim_frame;
                                self.frame1time = self.anim_frame1time;
-                               self.frame = self.anim_frame2;
+                               self.frame2 = self.anim_frame2;
                                self.frame2time = self.anim_frame2time;
                                CSQCModel_InterpolateAnimation_2To4_Note(sf | CSQCMODEL_PROPERTY_LERPFRAC, FALSE);
                        }
index 9a76f5ffc96410a8525506c42c622a080bfdcdcb..5a44848d4009cbe9b3ff544a90067339e15b0329 100644 (file)
@@ -249,16 +249,20 @@ void animdecide_setimplicitstate(entity e, float flg)
        if(!(e.anim_implicit_state & ANIMIMPLICITSTATE_INAIR) && (s & ANIMIMPLICITSTATE_INAIR))
        {
                // ground to air transition - do we want to reset jump anim?
+#if 0
                if(e.anim_lower_action != ANIMACTION_JUMP || time > e.anim_lower_time + 0.2)
                if(e.anim_lower_implicit_action != ANIMACTION_JUMP || time > e.anim_lower_implicit_time + 0.2)
                {
                        traceline(e.origin + '0 0 1' * e.maxs_z, e.origin + '0 0 1' * (e.mins_z - autocvar_sv_player_jumpanim_minfall), MOVE_NOMONSTERS, e);
                        if(!trace_startsolid && trace_fraction == 1)
                        {
+#endif
                                e.anim_lower_implicit_action = ANIMACTION_JUMP;
                                e.anim_lower_implicit_time = time;
+#if 0
                        }
                }
+#endif
        }
 
        if(s != e.anim_implicit_state)