X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fmovetypes%2Fmovetypes.qh;h=7578ae2fa446faae30fe97a44e84522c2a58e67d;hb=b8aa1409c31da37c43d111b20f137ea69afb2d9b;hp=67cd51e16b7d1e1a153558c2a103dd2115c49663;hpb=125d619e9ab2a307b15b7ee1a2ededed32c7e84d;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/movetypes/movetypes.qh b/qcsrc/common/movetypes/movetypes.qh index 67cd51e16..7578ae2fa 100644 --- a/qcsrc/common/movetypes/movetypes.qh +++ b/qcsrc/common/movetypes/movetypes.qh @@ -2,9 +2,9 @@ #define MOVETYPES_H .float move_ltime; -.void(void)move_think; +.void()move_think; .float move_nextthink; -.void(void)move_blocked; +.void()move_blocked; .float move_movetype; .float move_time; @@ -15,7 +15,7 @@ .int move_flags; .int move_watertype; .int move_waterlevel; -.void(void)move_touch; +.void()move_touch; .void(float, float)contentstransition; .float move_bounce_factor; .float move_bounce_stopspeed; @@ -27,45 +27,31 @@ // should match sv_gameplayfix_fixedcheckwatertransition float autocvar_cl_gameplayfix_fixedcheckwatertransition = 1; -#ifdef SVQC -.int stat_gameplayfix_upvelocityclearsonground; - -#define GRAVITY_UNAFFECTED_BY_TICRATE autocvar_sv_gameplayfix_gravityunaffectedbyticrate -#define UPWARD_VELOCITY_CLEARS_ONGROUND autocvar_sv_gameplayfix_upwardvelocityclearsongroundflag - -#define TICRATE sys_frametime -#elif defined(CSQC) -#define GRAVITY_UNAFFECTED_BY_TICRATE (getstati(STAT_MOVEFLAGS) & MOVEFLAG_GRAVITYUNAFFECTEDBYTICRATE) -#define UPWARD_VELOCITY_CLEARS_ONGROUND getstati(STAT_GAMEPLAYFIX_UPVELOCITYCLEARSONGROUND) - -#define TICRATE ticrate -#endif - .entity move_groundentity; // FIXME add move_groundnetworkentity? .float move_suspendedinair; .float move_didgravity; -void _Movetype_WallFriction(vector stepnormal); -int _Movetype_FlyMove(float dt, bool applygravity, vector stepnormal, float stepheight); -void _Movetype_CheckVelocity(); +void _Movetype_WallFriction(entity this, vector stepnormal); +int _Movetype_FlyMove(entity this, float dt, bool applygravity, vector stepnormal, float stepheight); +void _Movetype_CheckVelocity(entity this); void _Movetype_CheckWaterTransition(entity ent); float _Movetype_CheckWater(entity ent); -void _Movetype_LinkEdict_TouchAreaGrid(); -void _Movetype_LinkEdict(float touch_triggers); -float _Movetype_TestEntityPosition(vector ofs); -float _Movetype_UnstickEntity(); +void _Movetype_LinkEdict_TouchAreaGrid(entity this); +void _Movetype_LinkEdict(entity this, float touch_triggers); +float _Movetype_TestEntityPosition(entity this, vector ofs); +float _Movetype_UnstickEntity(entity this); vector _Movetype_ClipVelocity(vector vel, vector norm, float f); -void _Movetype_PushEntityTrace(vector push); -float _Movetype_PushEntity(vector push, float failonstartsolid); +void _Movetype_PushEntityTrace(entity this, vector push); +float _Movetype_PushEntity(entity this, vector push, float failonstartsolid); void makevectors_matrix(vector myangles); -void Movetype_Physics_MatchTicrate(float tr, bool sloppy); -void Movetype_Physics_MatchServer(bool sloppy); -void Movetype_Physics_NoMatchServer(); -void _Movetype_LinkEdict(float touch_triggers); -void _Movetype_LinkEdict_TouchAreaGrid(); +void Movetype_Physics_MatchTicrate(entity this, float tr, bool sloppy); +void Movetype_Physics_MatchServer(entity this, bool sloppy); +void Movetype_Physics_NoMatchServer(entity this); +void _Movetype_LinkEdict(entity this, float touch_triggers); +void _Movetype_LinkEdict_TouchAreaGrid(entity this); -float _Movetype_UnstickEntity(); +float _Movetype_UnstickEntity(entity this); const int MAX_CLIP_PLANES = 5; @@ -83,6 +69,7 @@ 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_PHYSICS = 32; const int MOVETYPE_FLY_WORLDONLY = 33; const int FL_ITEM = 256; @@ -91,13 +78,13 @@ const int FL_ONGROUND = 512; const int MOVETYPE_FAKEPUSH = 13; -const float MOVEFLAG_Q2AIRACCELERATE = 1; -const float MOVEFLAG_NOGRAVITYONGROUND = 2; -const float MOVEFLAG_GRAVITYUNAFFECTEDBYTICRATE = 4; +const int MOVEFLAG_VALID = BIT(23); +const int MOVEFLAG_Q2AIRACCELERATE = BIT(0); +const int MOVEFLAG_NOGRAVITYONGROUND = BIT(1); +const int MOVEFLAG_GRAVITYUNAFFECTEDBYTICRATE = BIT(2); #ifdef CSQC -// TODO: figure out server's version of this -#define moveflags (getstati(STAT_MOVEFLAGS)) +#define moveflags STAT(MOVEFLAGS) #endif #endif