X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmovelib.qc;h=f5e34f287de25d36eeb37397794dd1f5f566dab8;hb=ed25b097beea2aee6cdec771ebd01a257cf08fc9;hp=de82b16a8ab1f793623514e24cb38639430deb4f;hpb=3b2bc1bdee04f4c454279bf14ac8ed6b37c6ddb5;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/movelib.qc b/qcsrc/server/movelib.qc index de82b16a8..f5e34f287 100644 --- a/qcsrc/server/movelib.qc +++ b/qcsrc/server/movelib.qc @@ -1,3 +1,12 @@ +#if defined(CSQC) + #include "../dpdefs/csprogsdefs.qh" +#elif defined(MENUQC) +#elif defined(SVQC) + #include "../dpdefs/progsdefs.qh" + #include "../dpdefs/dpextensions.qh" + #include "../csqcmodellib/sv_model.qh" +#endif + #ifdef SVQC .vector moveto; @@ -171,6 +180,9 @@ void movelib_move_simple(vector newdir,float velo,float blendrate) #define movelib_move_simple(newdir,velo,blendrate) \ self.velocity = self.velocity * (1 - blendrate) + (newdir * blendrate) * velo +#define movelib_move_simple_gravity(newdir,velo,blendrate) \ + if(self.flags & FL_ONGROUND) movelib_move_simple(newdir,velo,blendrate) + void movelib_beak_simple(float force) { float mspeed; @@ -179,7 +191,7 @@ void movelib_beak_simple(float force) mspeed = max(0,vlen(self.velocity) - force); mdir = normalize(self.velocity); - vz = self.velocity_z; + vz = self.velocity.z; self.velocity = mdir * mspeed; self.velocity_z = vz; } @@ -199,8 +211,8 @@ void movelib_groundalign4point(float spring_length, float spring_up, float blend e = v_up * spring_length; // Put springs slightly inside bbox - ahead = v_forward * (self.maxs_x * 0.8); - side = v_right * (self.maxs_y * 0.8); + ahead = v_forward * (self.maxs.x * 0.8); + side = v_right * (self.maxs.y * 0.8); a = r + ahead + side; b = r + ahead - side; @@ -223,21 +235,21 @@ void movelib_groundalign4point(float spring_length, float spring_up, float blend d_z = (1 - trace_fraction); r += trace_endpos; - a_x = r_z; + a_x = r.z; r = self.origin; - r_z = r_z; + r_z = r.z; - push_angle_x = (a_z - c_z) * _max; - push_angle_x += (b_z - d_z) * _max; + push_angle_x = (a.z - c.z) * _max; + push_angle.x += (b.z - d.z) * _max; - push_angle_z = (b_z - a_z) * _max; - push_angle_z += (d_z - c_z) * _max; + push_angle_z = (b.z - a.z) * _max; + push_angle.z += (d.z - c.z) * _max; //self.angles_x += push_angle_x * 0.95; //self.angles_z += push_angle_z * 0.95; - self.angles_x = ((1-blendrate) * self.angles_x) + (push_angle_x * blendrate); - self.angles_z = ((1-blendrate) * self.angles_z) + (push_angle_z * blendrate); + self.angles_x = ((1-blendrate) * self.angles.x) + (push_angle.x * blendrate); + self.angles_z = ((1-blendrate) * self.angles.z) + (push_angle.z * blendrate); //a = self.origin; setorigin(self,r);