X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fcommon%2Fphysics%2Fplayer.qh;h=23456ebbe74e91c2a95805327c22de92317d2806;hb=8a0cb1dc6aaadf6ab8f771b94f968fba8ccb9009;hp=571d3c6cb4a009c864174bbc27997fc69f6dbf7a;hpb=37d93db98a5ba0fec820dd7333b873087b341291;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/physics/player.qh b/qcsrc/common/physics/player.qh index 571d3c6cb..23456ebbe 100644 --- a/qcsrc/common/physics/player.qh +++ b/qcsrc/common/physics/player.qh @@ -2,7 +2,10 @@ // Client/server mappings -.float pm_frametime; +#ifdef SVQC +// TODO: get rid of this random dumb include! + #include +#endif .entity conveyor; @@ -19,8 +22,8 @@ .float spectatorspeed; #endif +.int buttons_old; .vector movement_old; -.float buttons_old; .vector v_angle_old; .string lastclassname; @@ -29,14 +32,18 @@ float AdjustAirAccelQW(float accelqw, float factor); bool IsFlying(entity a); -#define BUFFS_STAT(s) STAT(BUFFS, s) +#define PHYS_PL_MAX(s) STAT(PL_MAX, s) +#define PHYS_PL_MIN(s) STAT(PL_MIN, s) +#define PHYS_PL_CROUCH_MAX(s) STAT(PL_CROUCH_MAX, s) +#define PHYS_PL_CROUCH_MIN(s) STAT(PL_CROUCH_MIN, s) -#define GAMEPLAYFIX_DOWNTRACEONGROUND(s) STAT(GAMEPLAYFIX_DOWNTRACEONGROUND, s) -#define GAMEPLAYFIX_EASIERWATERJUMP(s) STAT(GAMEPLAYFIX_EASIERWATERJUMP, s) -#define GAMEPLAYFIX_STEPDOWN(s) STAT(GAMEPLAYFIX_STEPDOWN, s) -#define GAMEPLAYFIX_STEPMULTIPLETIMES(s) STAT(GAMEPLAYFIX_STEPMULTIPLETIMES, s) -#define GAMEPLAYFIX_UNSTICKPLAYERS(s) STAT(GAMEPLAYFIX_UNSTICKPLAYERS, s) -#define GAMEPLAYFIX_WATERTRANSITION(s) STAT(GAMEPLAYFIX_WATERTRANSITION, s) +#define PHYS_PL_VIEWOFS(s) STAT(PL_VIEW_OFS, s) +#define PHYS_PL_CROUCH_VIEWOFS(s) STAT(PL_CROUCH_VIEW_OFS, s) + +#define PHYS_VIEWHEIGHT(s) STAT(VIEWHEIGHT, s) +#define PHYS_HEALTH(s) STAT(HEALTH, s) + +#define BUFFS_STAT(s) STAT(BUFFS, s) #define PHYS_ACCELERATE(s) STAT(MOVEVARS_ACCELERATE, s) #define PHYS_AIRACCELERATE(s) STAT(MOVEVARS_AIRACCELERATE, s) @@ -73,32 +80,24 @@ bool IsFlying(entity a); #define PHYS_JETPACK_MAXSPEED_UP(s) STAT(JETPACK_MAXSPEED_UP, s) #define PHYS_JETPACK_REVERSE_THRUST(s) STAT(JETPACK_REVERSE_THRUST, s) -#define PHYS_JUMPSPEEDCAP_DISABLE_ONRAMPS(s) STAT(MOVEVARS_JUMPSPEEDCAP_DISABLE_ONRAMPS, s) -#define PHYS_JUMPSTEP(s) STAT(MOVEVARS_JUMPSTEP, s) +#define PHYS_JUMPSPEEDCAP_DISABLE_ONRAMPS(s) STAT(MOVEVARS_JUMPSPEEDCAP_DISABLE_ONRAMPS, NULL) #define PHYS_JUMPVELOCITY(s) STAT(MOVEVARS_JUMPVELOCITY, s) #define PHYS_MAXAIRSPEED(s) STAT(MOVEVARS_MAXAIRSPEED, s) #define PHYS_MAXAIRSTRAFESPEED(s) STAT(MOVEVARS_MAXAIRSTRAFESPEED, s) #define PHYS_MAXSPEED(s) STAT(MOVEVARS_MAXSPEED, s) -#define PHYS_NOSTEP(s) STAT(NOSTEP, s) -#define PHYS_STEPHEIGHT(s) STAT(MOVEVARS_STEPHEIGHT, s) - #define PHYS_STOPSPEED(s) STAT(MOVEVARS_STOPSPEED, s) #define PHYS_TRACK_CANJUMP(s) STAT(MOVEVARS_TRACK_CANJUMP, s) -#define PHYS_WALLFRICTION(s) STAT(MOVEVARS_WALLFRICTION, s) - #define PHYS_WARSOWBUNNY_ACCEL(s) STAT(MOVEVARS_WARSOWBUNNY_ACCEL, s) #define PHYS_WARSOWBUNNY_AIRFORWARDACCEL(s) STAT(MOVEVARS_WARSOWBUNNY_AIRFORWARDACCEL, s) #define PHYS_WARSOWBUNNY_BACKTOSIDERATIO(s) STAT(MOVEVARS_WARSOWBUNNY_BACKTOSIDERATIO, s) #define PHYS_WARSOWBUNNY_TOPSPEED(s) STAT(MOVEVARS_WARSOWBUNNY_TOPSPEED, s) #define PHYS_WARSOWBUNNY_TURNACCEL(s) STAT(MOVEVARS_WARSOWBUNNY_TURNACCEL, s) -#define UPWARD_VELOCITY_CLEARS_ONGROUND(s) STAT(GAMEPLAYFIX_UPVELOCITYCLEARSONGROUND, s) - -#define PHYS_SLICK_APPLYGRAVITY(s) STAT(SLICK_APPLYGRAVITY, s) +#define PHYS_SLICK_APPLYGRAVITY(s) STAT(SLICK_APPLYGRAVITY, NULL) #define PHYS_INPUT_BUTTON_ATCK(s) PHYS_INPUT_BUTTON_BUTTON1(s) #define PHYS_INPUT_BUTTON_JUMP(s) PHYS_INPUT_BUTTON_BUTTON2(s) @@ -204,10 +203,6 @@ STATIC_INIT(PHYS_INPUT_BUTTON_DODGE) //float player_multijump; //float player_jumpheight; - #define PHYS_GRAVITY(s) STAT(MOVEVARS_GRAVITY, s) - - #define TICRATE ticrate - #define PHYS_INPUT_ANGLES(s) input_angles // TODO #define PHYS_WORLD_ANGLES(s) input_angles @@ -216,6 +211,7 @@ STATIC_INIT(PHYS_INPUT_BUTTON_DODGE) #define PHYS_INPUT_FRAMETIME serverdeltatime #define PHYS_INPUT_MOVEVALUES(s) input_movevalues + #define PHYS_CS(s) (s) #define PHYS_INPUT_BUTTON_BUTTON1(s) boolean(input_buttons & BIT(0)) #define PHYS_INPUT_BUTTON_BUTTON2(s) boolean(input_buttons & BIT(1)) @@ -237,10 +233,6 @@ STATIC_INIT(PHYS_INPUT_BUTTON_DODGE) #define PHYS_INPUT_BUTTON_BUTTON15(s) boolean(input_buttons & BIT(17)) #define PHYS_INPUT_BUTTON_BUTTON16(s) boolean(input_buttons & BIT(18)) - #define GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE (boolean(moveflags & MOVEFLAG_GRAVITYUNAFFECTEDBYTICRATE)) - #define GAMEPLAYFIX_NOGRAVITYONGROUND (boolean(moveflags & MOVEFLAG_NOGRAVITYONGROUND)) - #define GAMEPLAYFIX_Q2AIRACCELERATE (boolean(moveflags & MOVEFLAG_Q2AIRACCELERATE)) - #define IS_DUCKED(s) (boolean((s).flags & FL_DUCKED)) #define SET_DUCKED(s) ((s).flags |= FL_DUCKED) #define UNSET_DUCKED(s) ((s).flags &= ~FL_DUCKED) @@ -249,8 +241,6 @@ STATIC_INIT(PHYS_INPUT_BUTTON_DODGE) #define PHYS_JUMPSPEEDCAP_MAX autocvar_cl_jumpspeedcap_max #define PHYS_CL_TRACK_CANJUMP(s) STAT(MOVEVARS_CL_TRACK_CANJUMP, s) - // FIXME: 0 doesn't mean zero gravity - #define PHYS_ENTGRAVITY(s) STAT(MOVEVARS_ENTGRAVITY, s) #elif defined(SVQC) @@ -258,7 +248,9 @@ STATIC_INIT(PHYS_INPUT_BUTTON_DODGE) bool Physics_Valid(string thecvar); - void Physics_UpdateStats(entity this, float maxspd_mod); + void Physics_UpdateStats(entity this); + + void PM_UpdateButtons(entity this, entity store); .float stat_sv_airspeedlimit_nonqw = _STAT(MOVEVARS_AIRSPEEDLIMIT_NONQW); .float stat_sv_maxspeed = _STAT(MOVEVARS_MAXSPEED); @@ -267,41 +259,34 @@ STATIC_INIT(PHYS_INPUT_BUTTON_DODGE) .string jumpspeedcap_min; .string jumpspeedcap_max; - #define PHYS_GRAVITY(s) autocvar_sv_gravity - - #define TICRATE sys_frametime - #define PHYS_INPUT_ANGLES(s) ((s).v_angle) #define PHYS_WORLD_ANGLES(s) ((s).angles) #define PHYS_INPUT_TIMELENGTH frametime #define PHYS_INPUT_FRAMETIME sys_frametime - #define PHYS_INPUT_MOVEVALUES(s) ((s).movement) - - #define PHYS_INPUT_BUTTON_BUTTON1(s) ((s).button0) - #define PHYS_INPUT_BUTTON_BUTTON2(s) ((s).button2) - #define PHYS_INPUT_BUTTON_BUTTON3(s) ((s).button3) - #define PHYS_INPUT_BUTTON_BUTTON4(s) ((s).button4) - #define PHYS_INPUT_BUTTON_BUTTON5(s) ((s).button5) - #define PHYS_INPUT_BUTTON_BUTTON6(s) ((s).button6) - #define PHYS_INPUT_BUTTON_BUTTON7(s) ((s).button7) - #define PHYS_INPUT_BUTTON_BUTTON8(s) ((s).button8) - #define PHYS_INPUT_BUTTON_BUTTON_USE(s) ((s).buttonuse) - #define PHYS_INPUT_BUTTON_BUTTON_CHAT(s) ((s).buttonchat) - #define PHYS_INPUT_BUTTON_BUTTON_PRYDON(s) ((s).cursor_active) - #define PHYS_INPUT_BUTTON_BUTTON9(s) ((s).button9) - #define PHYS_INPUT_BUTTON_BUTTON10(s) ((s).button10) - #define PHYS_INPUT_BUTTON_BUTTON11(s) ((s).button11) - #define PHYS_INPUT_BUTTON_BUTTON12(s) ((s).button12) - #define PHYS_INPUT_BUTTON_BUTTON13(s) ((s).button13) - #define PHYS_INPUT_BUTTON_BUTTON14(s) ((s).button14) - #define PHYS_INPUT_BUTTON_BUTTON15(s) ((s).button15) - #define PHYS_INPUT_BUTTON_BUTTON16(s) ((s).button16) - - #define GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE autocvar_sv_gameplayfix_gravityunaffectedbyticrate - #define GAMEPLAYFIX_NOGRAVITYONGROUND autocvar_sv_gameplayfix_nogravityonground - #define GAMEPLAYFIX_Q2AIRACCELERATE autocvar_sv_gameplayfix_q2airaccelerate + #define PHYS_INPUT_MOVEVALUES(s) CS(s).movement + #define PHYS_CS(s) CS(s) + + #define PHYS_INPUT_BUTTON_BUTTON1(s) (CS(s).button0) + #define PHYS_INPUT_BUTTON_BUTTON2(s) (CS(s).button2) + #define PHYS_INPUT_BUTTON_BUTTON3(s) (CS(s).button3) + #define PHYS_INPUT_BUTTON_BUTTON4(s) (CS(s).button4) + #define PHYS_INPUT_BUTTON_BUTTON5(s) (CS(s).button5) + #define PHYS_INPUT_BUTTON_BUTTON6(s) (CS(s).button6) + #define PHYS_INPUT_BUTTON_BUTTON7(s) (CS(s).button7) + #define PHYS_INPUT_BUTTON_BUTTON8(s) (CS(s).button8) + #define PHYS_INPUT_BUTTON_BUTTON_USE(s) (CS(s).buttonuse) + #define PHYS_INPUT_BUTTON_BUTTON_CHAT(s) (CS(s).buttonchat) + #define PHYS_INPUT_BUTTON_BUTTON_PRYDON(s) (CS(s).cursor_active) + #define PHYS_INPUT_BUTTON_BUTTON9(s) (CS(s).button9) + #define PHYS_INPUT_BUTTON_BUTTON10(s) (CS(s).button10) + #define PHYS_INPUT_BUTTON_BUTTON11(s) (CS(s).button11) + #define PHYS_INPUT_BUTTON_BUTTON12(s) (CS(s).button12) + #define PHYS_INPUT_BUTTON_BUTTON13(s) (CS(s).button13) + #define PHYS_INPUT_BUTTON_BUTTON14(s) (CS(s).button14) + #define PHYS_INPUT_BUTTON_BUTTON15(s) (CS(s).button15) + #define PHYS_INPUT_BUTTON_BUTTON16(s) (CS(s).button16) #define IS_DUCKED(s) ((s).crouch) #define SET_DUCKED(s) ((s).crouch = true) @@ -311,10 +296,20 @@ STATIC_INIT(PHYS_INPUT_BUTTON_DODGE) #define PHYS_JUMPSPEEDCAP_MAX autocvar_sv_jumpspeedcap_max #define PHYS_CL_TRACK_CANJUMP(s) ((s).cvar_cl_movement_track_canjump) - #define PHYS_ENTGRAVITY(s) ((s).gravity) #endif +#ifdef SVQC +// FIXME/EXPLAINME: why? Mario: because +vector autocvar_sv_player_maxs = '16 16 45'; +vector autocvar_sv_player_mins = '-16 -16 -24'; +vector autocvar_sv_player_viewoffset = '0 0 35'; +vector autocvar_sv_player_crouch_maxs = '16 16 25'; +vector autocvar_sv_player_crouch_mins = '-16 -16 -24'; +vector autocvar_sv_player_crouch_viewoffset = '0 0 20'; +//vector autocvar_sv_player_headsize = '24 24 12'; +#endif + REGISTER_NET_C2S(setpause) #ifdef CSQC void unpause_update()