X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmovelib.qc;h=a156074d1929acad0cc36c5f4304430296b3b3dd;hb=ba0988ca930f50286f8cf3b6c114ebc6584964af;hp=b8f46b534dd5c09c0da8331f4ff9325e62b8c279;hpb=2c0e35d3ee9fe6652c9c56f29dbbf546da0043b0;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/movelib.qc b/qcsrc/server/movelib.qc index b8f46b534..a156074d1 100644 --- a/qcsrc/server/movelib.qc +++ b/qcsrc/server/movelib.qc @@ -1,4 +1,14 @@ -#ifdef SVQC +#if defined(CSQC) + #include "../dpdefs/csprogsdefs.qc" +#elif defined(MENUQC) +#elif defined(SVQC) + #include "../dpdefs/progsdefs.qc" + #include "../dpdefs/dpextensions.qc" + #include "sys-post.qh" + #include "../csqcmodellib/sv_model.qh" +#endif + +#ifdef SVQC .vector moveto; /** @@ -102,19 +112,6 @@ void movelib_move(vector force,float max_velocity,float drag,float theMass,float self.velocity = normalize(self.velocity) * (mspeed - 50);//* max_velocity; } -void movelib_move_simple_gravity(vector newdir,float velo,float blendrate) -{ - float z_speed = self.velocity_z; - self.movelib_lastupdate = time; - self.velocity = self.velocity * (1 - blendrate) + (newdir * blendrate) * velo; - self.velocity_z = z_speed * self.gravity; -} - -void movelib_jump_simple(float power){ - self.velocity_z=power; - self.movelib_lastupdate = time; -} - /* .float mass; .float side_friction; @@ -184,6 +181,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; @@ -192,7 +192,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; } @@ -212,8 +212,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; @@ -236,21 +236,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);