X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fphysics%2Fplayer.qh;h=eb044fb24f31aace84f193b04fdb8320d3d0611a;hb=3bd01e3ee79ab7ea2670bc781bf5d1d36cb9e79c;hp=fc11cfab263185de02d7ccd67f3ce06069693fe3;hpb=1256aab45ebe41e9e107e8ec65a2ecdb9b2b92eb;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/physics/player.qh b/qcsrc/common/physics/player.qh index fc11cfab2..eb044fb24 100644 --- a/qcsrc/common/physics/player.qh +++ b/qcsrc/common/physics/player.qh @@ -5,6 +5,50 @@ #ifdef SVQC // TODO: get rid of this random dumb include! #include + +float autocvar_sv_airaccel_qw; +float autocvar_sv_airstrafeaccel_qw; +float autocvar_sv_airspeedlimit_nonqw; +float autocvar_sv_airaccel_qw_stretchfactor; +float autocvar_sv_maxairstrafespeed; +float autocvar_sv_airstrafeaccelerate; +float autocvar_sv_warsowbunny_turnaccel; +float autocvar_sv_airaccel_sideways_friction; +float autocvar_sv_aircontrol; +float autocvar_sv_aircontrol_power; +float autocvar_sv_aircontrol_backwards; +float autocvar_sv_aircontrol_sidewards; +float autocvar_sv_aircontrol_penalty; +float autocvar_sv_warsowbunny_airforwardaccel; +float autocvar_sv_warsowbunny_topspeed; +float autocvar_sv_warsowbunny_accel; +float autocvar_sv_warsowbunny_backtosideratio; +float autocvar_sv_friction; +float autocvar_sv_accelerate; +float autocvar_sv_stopspeed; +float autocvar_sv_airaccelerate; +float autocvar_sv_airstopaccelerate; +float autocvar_sv_track_canjump; +string autocvar_g_physics_clientselect_options; +string autocvar_g_physics_clientselect_default; +bool autocvar_g_jump_grunt; +bool autocvar_g_physics_clientselect; +float autocvar_g_maxspeed; +float autocvar_g_movement_highspeed = 1; +bool autocvar_g_movement_highspeed_q3_compat = 0; +//float autocvar_g_nick_flood_penalty; +int autocvar_g_nick_flood_penalty_red; +int autocvar_g_nick_flood_penalty_yellow; +//float autocvar_g_nick_flood_timeout; +bool autocvar_speedmeter; +string autocvar_sv_jumpspeedcap_max; +float autocvar_sv_jumpspeedcap_max_disable_on_ramps; +string autocvar_sv_jumpspeedcap_min; +float autocvar_sv_jumpvelocity; +float autocvar_sv_jumpvelocity_crouch; +float autocvar_sv_maxairspeed; +float autocvar_sv_maxspeed; +bool autocvar_g_footsteps; #endif .entity conveyor; @@ -135,17 +179,17 @@ STATIC_INIT(PHYS_INPUT_BUTTON) // used for special commands and idle checking, not from the engine // TODO: cache #define PHYS_INPUT_BUTTON_MASK(s) ( \ - ((1 << 0) * PHYS_INPUT_BUTTON_ATCK(s)) \ - | ((1 << 1) * PHYS_INPUT_BUTTON_JUMP(s)) \ - | ((1 << 2) * PHYS_INPUT_BUTTON_ATCK2(s)) \ - | ((1 << 3) * PHYS_INPUT_BUTTON_ZOOM(s)) \ - | ((1 << 4) * PHYS_INPUT_BUTTON_CROUCH(s)) \ - | ((1 << 5) * PHYS_INPUT_BUTTON_HOOK(s)) \ - | ((1 << 6) * PHYS_INPUT_BUTTON_USE(s)) \ - | ((1 << 7) * PHYS_INPUT_BUTTON_BACKWARD(s)) \ - | ((1 << 8) * PHYS_INPUT_BUTTON_FORWARD(s)) \ - | ((1 << 9) * PHYS_INPUT_BUTTON_LEFT(s)) \ - | ((1 << 10) * PHYS_INPUT_BUTTON_RIGHT(s)) \ + (BIT(0) * PHYS_INPUT_BUTTON_ATCK(s)) \ + | (BIT(1) * PHYS_INPUT_BUTTON_JUMP(s)) \ + | (BIT(2) * PHYS_INPUT_BUTTON_ATCK2(s)) \ + | (BIT(3) * PHYS_INPUT_BUTTON_ZOOM(s)) \ + | (BIT(4) * PHYS_INPUT_BUTTON_CROUCH(s)) \ + | (BIT(5) * PHYS_INPUT_BUTTON_HOOK(s)) \ + | (BIT(6) * PHYS_INPUT_BUTTON_USE(s)) \ + | (BIT(7) * PHYS_INPUT_BUTTON_BACKWARD(s)) \ + | (BIT(8) * PHYS_INPUT_BUTTON_FORWARD(s)) \ + | (BIT(9) * PHYS_INPUT_BUTTON_LEFT(s)) \ + | (BIT(10) * PHYS_INPUT_BUTTON_RIGHT(s)) \ ) #define IS_JUMP_HELD(s) (!((s).flags & FL_JUMPRELEASED)) @@ -155,6 +199,10 @@ STATIC_INIT(PHYS_INPUT_BUTTON) #define WAS_ONGROUND(s) boolean((s).lastflags & FL_ONGROUND) #define WAS_ONSLICK(s) boolean((s).lastflags & FL_ONSLICK) +#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) + #define ITEMS_STAT(s) ((s).items) .float teleport_time; @@ -166,9 +214,6 @@ STATIC_INIT(PHYS_INPUT_BUTTON) string autocvar_cl_jumpspeedcap_min; string autocvar_cl_jumpspeedcap_max; - const int FL_WATERJUMP = 2048; // player jumping out of water - const int FL_JUMPRELEASED = 4096; // for jump debouncing - .float watertype; .float waterlevel; .int items; @@ -189,7 +234,7 @@ STATIC_INIT(PHYS_INPUT_BUTTON) #define IS_CLIENT(s) (((s).isplayermodel & ISPLAYER_CLIENT) || (s) == csqcplayer) #define IS_PLAYER(s) ((s).isplayermodel & ISPLAYER_PLAYER) #define IS_NOT_A_CLIENT(s) (!(s).isplayermodel && (s) != csqcplayer) - #define isPushable(s) ((s).isplayermodel || (s).pushable || ((s).flags & FL_PROJECTILE)) + #define IS_DEAD(s) (((s).classname == "ENT_CLIENT_MODEL") ? (s).csqcmodel_isdead : (GetResource((s), RES_HEALTH) <= 0)) //float player_multijump; //float player_jumpheight; @@ -224,10 +269,6 @@ STATIC_INIT(PHYS_INPUT_BUTTON) #define PHYS_INPUT_BUTTON_BUTTON15(s) boolean(input_buttons & BIT(17)) #define PHYS_INPUT_BUTTON_BUTTON16(s) boolean(input_buttons & BIT(18)) - #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) - #define PHYS_INVEHICLE(s) (boolean(hud != HUD_NORMAL)) #define PHYS_JUMPSPEEDCAP_MIN autocvar_cl_jumpspeedcap_min @@ -249,6 +290,9 @@ STATIC_INIT(PHYS_INPUT_BUTTON) .string jumpspeedcap_min; .string jumpspeedcap_max; + // footstep interval + .float nextstep; + #define PHYS_INPUT_ANGLES(s) ((s).v_angle) #define PHYS_WORLD_ANGLES(s) ((s).angles) @@ -278,16 +322,12 @@ STATIC_INIT(PHYS_INPUT_BUTTON) #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) - #define UNSET_DUCKED(s) ((s).crouch = false) - #define PHYS_INVEHICLE(s) (boolean((s).vehicle != NULL)) #define PHYS_JUMPSPEEDCAP_MIN autocvar_sv_jumpspeedcap_min #define PHYS_JUMPSPEEDCAP_MAX autocvar_sv_jumpspeedcap_max - #define PHYS_CL_TRACK_CANJUMP(s) (CS(s).cvar_cl_movement_track_canjump) + #define PHYS_CL_TRACK_CANJUMP(s) (CS_CVAR(s).cvar_cl_movement_track_canjump) #endif