Index: engine/rendermodel.cpp =================================================================== --- engine/rendermodel.cpp (revision 143) +++ engine/rendermodel.cpp (working copy) @@ -129,13 +129,14 @@ COMMAND(mdlshader, "s"); -void mdlspin(float *rate) +void mdlspin(float *rateX, float *rateY) { checkmdl; - loadingmodel->spin = *rate; + loadingmodel->spin = *rateX; + loadingmodel->rotation = *rateY; } -COMMAND(mdlspin, "f"); +COMMAND(mdlspin, "ff"); void mdlscale(int *percent) { Index: engine/model.h =================================================================== --- engine/model.h (revision 55) +++ engine/model.h (working copy) @@ -2,7 +2,7 @@ struct model { - float spin, offsetyaw, offsetpitch; + float spin, rotation, offsetyaw, offsetpitch; bool collide, ellipsecollide, shadow; float scale; vec translate; @@ -11,7 +11,7 @@ float eyeheight, collideradius, collideheight; int batch; - model() : spin(0), offsetyaw(0), offsetpitch(0), collide(true), ellipsecollide(false), shadow(true), scale(1.0f), translate(0, 0, 0), bih(0), bbcenter(0, 0, 0), bbradius(0, 0, 0), bbextend(0, 0, 0), eyeheight(0.9f), collideradius(0), collideheight(0), batch(-1) {} + model() : spin(0), rotation(0), offsetyaw(0), offsetpitch(0), collide(true), ellipsecollide(false), shadow(true), scale(1.0f), translate(0, 0, 0), bih(0), bbcenter(0, 0, 0), bbradius(0, 0, 0), bbextend(0, 0, 0), eyeheight(0.9f), collideradius(0), collideheight(0), batch(-1) {} virtual ~model() { DELETEP(bih); } virtual void calcbb(int frame, vec ¢er, vec &radius) = 0; virtual void render(int anim, float speed, int basetime, const vec &o, float yaw, float pitch, dynent *d, modelattach *a = NULL, const vec &color = vec(0, 0, 0), const vec &dir = vec(0, 0, 0)) = 0; Index: engine/animmodel.h =================================================================== --- engine/animmodel.h (revision 183) +++ engine/animmodel.h (working copy) @@ -913,7 +913,7 @@ plane fogplane; yaw += offsetyaw + spin*lastmillis/1000.0f; - pitch += offsetpitch; + pitch += offsetpitch + rotation*lastmillis/1000.0f; matrixpos = 0; matrixstack[0].identity();