+#ifndef MOVETYPES_H
+#define MOVETYPES_H
+
+#if defined(CSQC)
+ #include "../common/util-pre.qh"
+ #include "sys-pre.qh"
+ #include "../dpdefs/csprogsdefs.qc"
+ #include "sys-post.qh"
+ #include "Defs.qc"
+ #include "../dpdefs/keycodes.qc"
+ #include "../common/constants.qh"
+ #include "../common/stats.qh"
+ #include "../warpzonelib/anglestransform.qh"
+ #include "../warpzonelib/mathlib.qh"
+ #include "../warpzonelib/common.qh"
+ #include "../warpzonelib/client.qh"
+ #include "../common/playerstats.qh"
+ #include "../common/teams.qh"
+ #include "../common/util.qh"
+ #include "../common/nades.qh"
+ #include "../common/buffs.qh"
+ #include "../common/test.qh"
+ #include "../common/counting.qh"
+ #include "../common/weapons/weapons.qh"
+ #include "../common/mapinfo.qh"
+ #include "../common/command/markup.qh"
+ #include "../common/command/rpn.qh"
+ #include "../common/command/generic.qh"
+ #include "../common/command/shared_defs.qh"
+ #include "../common/urllib.qh"
+ #include "../common/animdecide.qh"
+ #include "command/cl_cmd.qh"
+ #include "../common/monsters/monsters.qh"
+ #include "autocvars.qh"
+ #include "../common/notifications.qh"
+ #include "../common/deathtypes.qh"
+ #include "damage.qh"
+ #include "../csqcmodellib/interpolate.qh"
+ #include "teamradar.qh"
+ #include "hud.qh"
+ #include "scoreboard.qh"
+ #include "waypointsprites.qh"
+#elif defined(MENUQC)
+#elif defined(SVQC)
+#endif
+
.float move_movetype;
.float move_time;
.vector move_origin;
.vector move_angles;
.vector move_velocity;
.vector move_avelocity;
-.float move_flags;
+.int move_flags;
+.float move_watertype;
+.float 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
\ No newline at end of file