X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fcommon%2Fphysics.qh;h=d1f82991cd3308f4e5f45c70043e3f2ad076b0a9;hb=a014f99742b4ce9131bb4571e52be59a073d1871;hp=52a8e9a56959d67f683ccf238bb0455ca1c26329;hpb=84a38fdd5472807230568b020e13a5adc73532f6;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/physics.qh b/qcsrc/common/physics.qh index 52a8e9a56..d1f82991c 100644 --- a/qcsrc/common/physics.qh +++ b/qcsrc/common/physics.qh @@ -35,13 +35,16 @@ bool IsFlying(entity a); .float watertype; .int items; + .vector movement; + .vector v_angle; + // TODO #define IS_CLIENT(s) (s).isplayermodel #define IS_PLAYER(s) (s).isplayermodel #define isPushable(s) (s).isplayermodel - float player_multijump; - float player_jumpheight; + //float player_multijump; + //float player_jumpheight; #define PHYS_INPUT_ANGLES(s) input_angles // TODO @@ -64,7 +67,7 @@ bool IsFlying(entity a); #define PHYS_INPUT_BUTTON_FORWARD(s) !!(input_buttons & 256) #define PHYS_INPUT_BUTTON_LEFT(s) !!(input_buttons & 512) #define PHYS_INPUT_BUTTON_RIGHT(s) !!(input_buttons & 1024) - #define PHYS_INPUT_BUTTON_JETPACK(s) !!(input_buttons & 2048) + #define PHYS_INPUT_BUTTON_JETPACK(s) !!(input_buttons & 4096) #define PHYS_DEAD(s) s.csqcmodel_isdead @@ -72,6 +75,10 @@ bool IsFlying(entity a); #define GAMEPLAYFIX_NOGRAVITYONGROUND cvar("sv_gameplayfix_nogravityonground") #define GAMEPLAYFIX_Q2AIRACCELERATE cvar("sv_gameplayfix_q2airaccelerate") #define GAMEPLAYFIX_EASIERWATERJUMP getstati(STAT_GAMEPLAYFIX_EASIERWATERJUMP) + #define GAMEPLAYFIX_DOWNTRACEONGROUND getstati(STAT_GAMEPLAYFIX_DOWNTRACEONGROUND) + #define GAMEPLAYFIX_STEPMULTIPLETIMES getstati(STAT_GAMEPLAYFIX_STEPMULTIPLETIMES) + #define GAMEPLAYFIX_UNSTICKPLAYERS getstati(STAT_GAMEPLAYFIX_UNSTICKPLAYERS) + #define GAMEPLAYFIX_STEPDOWN getstati(STAT_GAMEPLAYFIX_STEPDOWN) #define IS_DUCKED(s) !!(s.flags & FL_DUCKED) #define SET_DUCKED(s) s.flags |= FL_DUCKED @@ -87,7 +94,8 @@ bool IsFlying(entity a); #define WAS_ONGROUND(s) !!(s.lastflags & FL_ONGROUND) - #define ITEMS(s) (s).items + #define ITEMS_STAT(s) (s).items + #define BUFFS_STAT(s) getstati(STAT_BUFFS) #define PHYS_AMMO_FUEL(s) getstati(STAT_FUEL) @@ -95,10 +103,27 @@ bool IsFlying(entity a); #define PHYS_DOUBLEJUMP getstati(STAT_DOUBLEJUMP) - #define PHYS_JUMPSPEEDCAP_MIN getstatf(STAT_MOVEVARS_JUMPSPEEDCAP_MIN) - #define PHYS_JUMPSPEEDCAP_MAX getstatf(STAT_MOVEVARS_JUMPSPEEDCAP_MAX) + #define PHYS_BUGRIGS getstati(STAT_BUGRIGS) + #define PHYS_BUGRIGS_ANGLE_SMOOTHING getstati(STAT_BUGRIGS_ANGLE_SMOOTHING) + #define PHYS_BUGRIGS_PLANAR_MOVEMENT getstati(STAT_BUGRIGS_PLANAR_MOVEMENT) + #define PHYS_BUGRIGS_REVERSE_SPEEDING getstati(STAT_BUGRIGS_REVERSE_SPEEDING) + #define PHYS_BUGRIGS_FRICTION_FLOOR getstatf(STAT_BUGRIGS_FRICTION_FLOOR) + #define PHYS_BUGRIGS_AIR_STEERING getstati(STAT_BUGRIGS_AIR_STEERING) + #define PHYS_BUGRIGS_FRICTION_BRAKE getstatf(STAT_BUGRIGS_FRICTION_BRAKE) + #define PHYS_BUGRIGS_ACCEL getstatf(STAT_BUGRIGS_ACCEL) + #define PHYS_BUGRIGS_SPEED_REF getstatf(STAT_BUGRIGS_SPEED_REF) + #define PHYS_BUGRIGS_SPEED_POW getstatf(STAT_BUGRIGS_SPEED_POW) + #define PHYS_BUGRIGS_STEER getstatf(STAT_BUGRIGS_STEER) + #define PHYS_BUGRIGS_FRICTION_AIR getstatf(STAT_BUGRIGS_FRICTION_AIR) + #define PHYS_BUGRIGS_CAR_JUMPING getstatf(STAT_BUGRIGS_CAR_JUMPING) + #define PHYS_BUGRIGS_REVERSE_SPINNING getstatf(STAT_BUGRIGS_REVERSE_SPINNING) + #define PHYS_BUGRIGS_REVERSE_STOPPING getstatf(STAT_BUGRIGS_REVERSE_STOPPING) + + #define PHYS_JUMPSPEEDCAP_MIN cvar_string("cl_jumpspeedcap_min") + #define PHYS_JUMPSPEEDCAP_MAX cvar_string("cl_jumpspeedcap_max") #define PHYS_JUMPSPEEDCAP_DISABLE_ONRAMPS getstati(STAT_MOVEVARS_JUMPSPEEDCAP_DISABLE_ONRAMPS) + #define PHYS_CL_TRACK_CANJUMP(s) getstati(STAT_MOVEVARS_CL_TRACK_CANJUMP) #define PHYS_TRACK_CANJUMP(s) getstati(STAT_MOVEVARS_TRACK_CANJUMP) #define PHYS_ACCELERATE getstatf(STAT_MOVEVARS_ACCELERATE) #define PHYS_AIRACCEL_QW(s) getstatf(STAT_MOVEVARS_AIRACCEL_QW) @@ -111,7 +136,7 @@ bool IsFlying(entity a); #define PHYS_AIRSPEEDLIMIT_NONQW(s) getstatf(STAT_MOVEVARS_AIRSPEEDLIMIT_NONQW) #define PHYS_AIRSTOPACCELERATE getstatf(STAT_MOVEVARS_AIRSTOPACCELERATE) #define PHYS_AIRSTRAFEACCEL_QW(s) getstatf(STAT_MOVEVARS_AIRSTRAFEACCEL_QW) - #define PHYS_AIRSTRAFEACCELERATE getstatf(STAT_MOVEVARS_AIRSTRAFEACCELERATE) + #define PHYS_AIRSTRAFEACCELERATE(s) getstatf(STAT_MOVEVARS_AIRSTRAFEACCELERATE) #define PHYS_ENTGRAVITY(s) getstatf(STAT_MOVEVARS_ENTGRAVITY) #define PHYS_FRICTION getstatf(STAT_MOVEVARS_FRICTION) #define PHYS_FRICTION_SLICK getstatf(STAT_MOVEVARS_FRICTION_SLICK) @@ -119,7 +144,7 @@ bool IsFlying(entity a); #define PHYS_GRAVITY getstatf(STAT_MOVEVARS_GRAVITY) #define PHYS_HIGHSPEED getstatf(STAT_MOVEVARS_HIGHSPEED) #define PHYS_JUMPVELOCITY getstatf(STAT_MOVEVARS_JUMPVELOCITY) - #define PHYS_MAXAIRSPEED getstatf(STAT_MOVEVARS_MAXAIRSPEED) + #define PHYS_MAXAIRSPEED(s) getstatf(STAT_MOVEVARS_MAXAIRSPEED) #define PHYS_MAXAIRSTRAFESPEED getstatf(STAT_MOVEVARS_MAXAIRSTRAFESPEED) #define PHYS_MAXSPEED(s) getstatf(STAT_MOVEVARS_MAXSPEED) #define PHYS_STEPHEIGHT getstatf(STAT_MOVEVARS_STEPHEIGHT) @@ -130,6 +155,8 @@ bool IsFlying(entity a); #define PHYS_WARSOWBUNNY_TOPSPEED getstatf(STAT_MOVEVARS_WARSOWBUNNY_TOPSPEED) #define PHYS_WARSOWBUNNY_TURNACCEL getstatf(STAT_MOVEVARS_WARSOWBUNNY_TURNACCEL) + #define PHYS_WALLFRICTION getstati(STAT_MOVEVARS_WALLFRICTION) + #define PHYS_JETPACK_ACCEL_UP getstatf(STAT_JETPACK_ACCEL_UP) #define PHYS_JETPACK_ACCEL_SIDE getstatf(STAT_JETPACK_ACCEL_SIDE) #define PHYS_JETPACK_ANTIGRAVITY getstatf(STAT_JETPACK_ANTIGRAVITY) @@ -139,8 +166,21 @@ bool IsFlying(entity a); #define PHYS_DODGING_FROZEN getstati(STAT_DODGING_FROZEN) + #define PHYS_NOSTEP getstati(STAT_NOSTEP) + #define PHYS_JUMPSTEP getstati(STAT_MOVEVARS_JUMPSTEP) + #elif defined(SVQC) + bool Physics_Valid(string thecvar); + + .vector stat_pl_view_ofs; + .vector stat_pl_crouch_view_ofs; + + .vector stat_pl_min; + .vector stat_pl_max; + .vector stat_pl_crouch_min; + .vector stat_pl_crouch_max; + .float stat_sv_airaccel_qw; .float stat_sv_airstrafeaccel_qw; .float stat_sv_airspeedlimit_nonqw; @@ -152,8 +192,8 @@ bool IsFlying(entity a); .float stat_doublejump; - .float stat_jumpspeedcap_min; - .float stat_jumpspeedcap_max; + .string stat_jumpspeedcap_min; + .string stat_jumpspeedcap_max; .float stat_jumpspeedcap_disable_onramps; .float stat_jetpack_accel_side; @@ -163,6 +203,52 @@ bool IsFlying(entity a); .float stat_jetpack_maxspeed_up; .float stat_jetpack_maxspeed_side; .float stat_gameplayfix_easierwaterjump; + .float stat_gameplayfix_downtracesupportsongroundflag; + .float stat_gameplayfix_stepmultipletimes; + .float stat_gameplayfix_unstickplayers; + .float stat_gameplayfix_stepdown; + + .float stat_bugrigs; + .float stat_bugrigs_angle_smoothing; + .float stat_bugrigs_planar_movement; + .float stat_bugrigs_reverse_speeding; + .float stat_bugrigs_friction_floor; + .float stat_bugrigs_air_steering; + .float stat_bugrigs_friction_brake; + .float stat_bugrigs_accel; + .float stat_bugrigs_speed_ref; + .float stat_bugrigs_speed_pow; + .float stat_bugrigs_steer; + .float stat_bugrigs_friction_air; + .float stat_bugrigs_car_jumping; + .float stat_bugrigs_reverse_spinning; + .float stat_bugrigs_reverse_stopping; + + // new properties + .float stat_sv_jumpvelocity; + .float stat_sv_airaccel_qw_stretchfactor; + .float stat_sv_maxairstrafespeed; + .float stat_sv_maxairspeed; + .float stat_sv_airstrafeaccelerate; + .float stat_sv_warsowbunny_turnaccel; + .float stat_sv_airaccel_sideways_friction; + .float stat_sv_aircontrol; + .float stat_sv_aircontrol_power; + .float stat_sv_aircontrol_penalty; + .float stat_sv_warsowbunny_airforwardaccel; + .float stat_sv_warsowbunny_topspeed; + .float stat_sv_warsowbunny_accel; + .float stat_sv_warsowbunny_backtosideratio; + .float stat_sv_friction; + .float stat_sv_accelerate; + .float stat_sv_stopspeed; + .float stat_sv_airaccelerate; + .float stat_sv_airstopaccelerate; + + .float stat_nostep; + .float stat_jumpstep; + + .bool stat_sv_track_canjump; #define PHYS_INPUT_ANGLES(s) s.v_angle #define PHYS_WORLD_ANGLES(s) s.angles @@ -192,6 +278,10 @@ bool IsFlying(entity a); #define GAMEPLAYFIX_NOGRAVITYONGROUND cvar("sv_gameplayfix_nogravityonground") #define GAMEPLAYFIX_Q2AIRACCELERATE autocvar_sv_gameplayfix_q2airaccelerate #define GAMEPLAYFIX_EASIERWATERJUMP cvar("sv_gameplayfix_easierwaterjump") + #define GAMEPLAYFIX_DOWNTRACEONGROUND cvar("sv_gameplayfix_downtracesupportsongroundflag") + #define GAMEPLAYFIX_STEPMULTIPLETIMES cvar("sv_gameplayfix_stepmultipletimes") + #define GAMEPLAYFIX_UNSTICKPLAYERS cvar("sv_gameplayfix_unstickplayers") + #define GAMEPLAYFIX_STEPDOWN cvar("sv_gameplayfix_stepdown") #define IS_DUCKED(s) s.crouch #define SET_DUCKED(s) s.crouch = true @@ -201,13 +291,14 @@ bool IsFlying(entity a); #define SET_JUMP_HELD(s) s.flags &= ~FL_JUMPRELEASED #define UNSET_JUMP_HELD(s) s.flags |= FL_JUMPRELEASED - #define IS_ONGROUND(s) !!(self.flags & FL_ONGROUND) + #define IS_ONGROUND(s) !!(s.flags & FL_ONGROUND) #define SET_ONGROUND(s) s.flags |= FL_ONGROUND #define UNSET_ONGROUND(s) s.flags &= ~FL_ONGROUND #define WAS_ONGROUND(s) !!((s).lastflags & FL_ONGROUND) - #define ITEMS(s) s.items + #define ITEMS_STAT(s) s.items + #define BUFFS_STAT(s) (s).buffs #define PHYS_AMMO_FUEL(s) s.ammo_fuel @@ -215,40 +306,59 @@ bool IsFlying(entity a); #define PHYS_DOUBLEJUMP autocvar_sv_doublejump + #define PHYS_BUGRIGS g_bugrigs + #define PHYS_BUGRIGS_ANGLE_SMOOTHING g_bugrigs_angle_smoothing + #define PHYS_BUGRIGS_PLANAR_MOVEMENT g_bugrigs_planar_movement + #define PHYS_BUGRIGS_REVERSE_SPEEDING g_bugrigs_reverse_speeding + #define PHYS_BUGRIGS_FRICTION_FLOOR g_bugrigs_friction_floor + #define PHYS_BUGRIGS_AIR_STEERING g_bugrigs_air_steering + #define PHYS_BUGRIGS_FRICTION_BRAKE g_bugrigs_friction_brake + #define PHYS_BUGRIGS_ACCEL g_bugrigs_accel + #define PHYS_BUGRIGS_SPEED_REF g_bugrigs_speed_ref + #define PHYS_BUGRIGS_SPEED_POW g_bugrigs_speed_pow + #define PHYS_BUGRIGS_STEER g_bugrigs_steer + #define PHYS_BUGRIGS_FRICTION_AIR g_bugrigs_friction_air + #define PHYS_BUGRIGS_CAR_JUMPING g_bugrigs_planar_movement_car_jumping + #define PHYS_BUGRIGS_REVERSE_SPINNING g_bugrigs_reverse_spinning + #define PHYS_BUGRIGS_REVERSE_STOPPING g_bugrigs_reverse_stopping + #define PHYS_JUMPSPEEDCAP_MIN autocvar_sv_jumpspeedcap_min #define PHYS_JUMPSPEEDCAP_MAX autocvar_sv_jumpspeedcap_max #define PHYS_JUMPSPEEDCAP_DISABLE_ONRAMPS autocvar_sv_jumpspeedcap_max_disable_on_ramps - #define PHYS_TRACK_CANJUMP(s) s.cvar_cl_movement_track_canjump - #define PHYS_ACCELERATE autocvar_sv_accelerate + #define PHYS_CL_TRACK_CANJUMP(s) s.cvar_cl_movement_track_canjump + #define PHYS_TRACK_CANJUMP(s) s.stat_sv_track_canjump + #define PHYS_ACCELERATE self.stat_sv_accelerate #define PHYS_AIRACCEL_QW(s) s.stat_sv_airaccel_qw - #define PHYS_AIRACCEL_QW_STRETCHFACTOR(s) autocvar_sv_airaccel_qw_stretchfactor - #define PHYS_AIRACCEL_SIDEWAYS_FRICTION autocvar_sv_airaccel_sideways_friction - #define PHYS_AIRACCELERATE autocvar_sv_airaccelerate - #define PHYS_AIRCONTROL autocvar_sv_aircontrol - #define PHYS_AIRCONTROL_PENALTY autocvar_sv_aircontrol_penalty - #define PHYS_AIRCONTROL_POWER autocvar_sv_aircontrol_power + #define PHYS_AIRACCEL_QW_STRETCHFACTOR(s) self.stat_sv_airaccel_qw_stretchfactor + #define PHYS_AIRACCEL_SIDEWAYS_FRICTION self.stat_sv_airaccel_sideways_friction + #define PHYS_AIRACCELERATE self.stat_sv_airaccelerate + #define PHYS_AIRCONTROL self.stat_sv_aircontrol + #define PHYS_AIRCONTROL_PENALTY self.stat_sv_aircontrol_penalty + #define PHYS_AIRCONTROL_POWER self.stat_sv_aircontrol_power #define PHYS_AIRSPEEDLIMIT_NONQW(s) s.stat_sv_airspeedlimit_nonqw - #define PHYS_AIRSTOPACCELERATE autocvar_sv_airstopaccelerate + #define PHYS_AIRSTOPACCELERATE self.stat_sv_airstopaccelerate #define PHYS_AIRSTRAFEACCEL_QW(s) s.stat_sv_airstrafeaccel_qw - #define PHYS_AIRSTRAFEACCELERATE autocvar_sv_airstrafeaccelerate + #define PHYS_AIRSTRAFEACCELERATE(s) s.stat_sv_airstrafeaccelerate #define PHYS_ENTGRAVITY(s) s.gravity - #define PHYS_FRICTION autocvar_sv_friction + #define PHYS_FRICTION self.stat_sv_friction #define PHYS_FRICTION_SLICK autocvar_sv_friction_slick #define PHYS_FRICTION_ONLAND autocvar_sv_friction_on_land #define PHYS_GRAVITY autocvar_sv_gravity #define PHYS_HIGHSPEED autocvar_g_movement_highspeed - #define PHYS_JUMPVELOCITY autocvar_sv_jumpvelocity - #define PHYS_MAXAIRSPEED autocvar_sv_maxairspeed - #define PHYS_MAXAIRSTRAFESPEED autocvar_sv_maxairstrafespeed + #define PHYS_JUMPVELOCITY self.stat_sv_jumpvelocity + #define PHYS_MAXAIRSPEED(s) self.stat_sv_maxairspeed + #define PHYS_MAXAIRSTRAFESPEED self.stat_sv_maxairstrafespeed #define PHYS_MAXSPEED(s) s.stat_sv_maxspeed #define PHYS_STEPHEIGHT autocvar_sv_stepheight - #define PHYS_STOPSPEED autocvar_sv_stopspeed - #define PHYS_WARSOWBUNNY_ACCEL autocvar_sv_warsowbunny_accel - #define PHYS_WARSOWBUNNY_BACKTOSIDERATIO autocvar_sv_warsowbunny_backtosideratio - #define PHYS_WARSOWBUNNY_AIRFORWARDACCEL autocvar_sv_warsowbunny_airforwardaccel - #define PHYS_WARSOWBUNNY_TOPSPEED autocvar_sv_warsowbunny_topspeed - #define PHYS_WARSOWBUNNY_TURNACCEL autocvar_sv_warsowbunny_turnaccel + #define PHYS_STOPSPEED self.stat_sv_stopspeed + #define PHYS_WARSOWBUNNY_ACCEL self.stat_sv_warsowbunny_accel + #define PHYS_WARSOWBUNNY_BACKTOSIDERATIO self.stat_sv_warsowbunny_backtosideratio + #define PHYS_WARSOWBUNNY_AIRFORWARDACCEL self.stat_sv_warsowbunny_airforwardaccel + #define PHYS_WARSOWBUNNY_TOPSPEED self.stat_sv_warsowbunny_topspeed + #define PHYS_WARSOWBUNNY_TURNACCEL self.stat_sv_warsowbunny_turnaccel + + #define PHYS_WALLFRICTION cvar("sv_wallfriction") #define PHYS_JETPACK_ACCEL_UP autocvar_g_jetpack_acceleration_up #define PHYS_JETPACK_ACCEL_SIDE autocvar_g_jetpack_acceleration_side @@ -259,5 +369,8 @@ bool IsFlying(entity a); #define PHYS_DODGING_FROZEN autocvar_sv_dodging_frozen + #define PHYS_NOSTEP cvar("sv_nostep") + #define PHYS_JUMPSTEP cvar("sv_jumpstep") + #endif #endif