+#ifndef MOVETYPES_H
+#define MOVETYPES_H
+
.float move_movetype;
.float move_time;
.vector move_origin;
.vector move_angles;
.vector move_velocity;
.vector move_avelocity;
-.float move_flags;
+.int move_flags;
+.int move_watertype;
+.int move_waterlevel;
.void(void) move_touch;
+.void(float, float) contentstransition;
.float move_bounce_factor;
.float move_bounce_stopspeed;
.float move_nomonsters; // -1 for MOVE_NORMAL, otherwise a MOVE_ constant
-void Movetype_Physics_MatchTicrate(float tr, float sloppy);
-void Movetype_Physics_MatchServer(float sloppy);
+// should match sv_gameplayfix_fixedcheckwatertransition
+float autocvar_cl_gameplayfix_fixedcheckwatertransition = 1;
+
+void Movetype_Physics_MatchTicrate(float tr, bool sloppy);
+void Movetype_Physics_MatchServer(bool sloppy);
void Movetype_Physics_NoMatchServer();
-float MOVETYPE_NONE = 0;
-float MOVETYPE_ANGLENOCLIP = 1;
-float MOVETYPE_ANGLECLIP = 2;
-float MOVETYPE_WALK = 3;
-float MOVETYPE_STEP = 4;
-float MOVETYPE_FLY = 5;
-float MOVETYPE_TOSS = 6;
-float MOVETYPE_PUSH = 7;
-float MOVETYPE_NOCLIP = 8;
-float MOVETYPE_FLYMISSILE = 9;
-float MOVETYPE_BOUNCE = 10;
-float MOVETYPE_BOUNCEMISSILE = 11; // Like bounce but doesn't lose speed on bouncing
-float MOVETYPE_FOLLOW = 12;
-float MOVETYPE_FAKEPUSH = 13;
-float MOVETYPE_FLY_WORLDONLY = 33;
+const int MOVETYPE_NONE = 0;
+const int MOVETYPE_ANGLENOCLIP = 1;
+const int MOVETYPE_ANGLECLIP = 2;
+const int MOVETYPE_WALK = 3;
+const int MOVETYPE_STEP = 4;
+const int MOVETYPE_FLY = 5;
+const int MOVETYPE_TOSS = 6;
+const int MOVETYPE_PUSH = 7;
+const int MOVETYPE_NOCLIP = 8;
+const int MOVETYPE_FLYMISSILE = 9;
+const int MOVETYPE_BOUNCE = 10;
+const int MOVETYPE_BOUNCEMISSILE = 11; // Like bounce but doesn't lose speed on bouncing
+const int MOVETYPE_FOLLOW = 12;
+const int MOVETYPE_FAKEPUSH = 13;
+const int MOVETYPE_FLY_WORLDONLY = 33;
-float FL_ITEM = 256;
-float FL_ONGROUND = 512;
+const int FL_ITEM = 256;
+const int FL_ONGROUND = 512;
+#endif