From: terencehill Date: Sat, 26 Dec 2020 20:20:38 +0000 (+0100) Subject: Turn com_phys_gravity field into a float X-Git-Tag: xonotic-v0.8.5~619 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=1135e816d9db2260f5cf5b4f114e8a48216d3d2e;p=xonotic%2Fxonotic-data.pk3dir.git Turn com_phys_gravity field into a float --- diff --git a/qcsrc/ecs/components/physics.qh b/qcsrc/ecs/components/physics.qh index 1852d14ea..b2a99d963 100644 --- a/qcsrc/ecs/components/physics.qh +++ b/qcsrc/ecs/components/physics.qh @@ -13,7 +13,7 @@ COMPONENT(phys); .float com_phys_acc_rate_air_stop; .float com_phys_friction; -.vector com_phys_gravity; +.float com_phys_gravity; .float com_phys_gravity_factor; // TODO: remove .bool com_phys_ground; diff --git a/qcsrc/ecs/systems/physics.qc b/qcsrc/ecs/systems/physics.qc index 1f42c6988..38d35d4b3 100644 --- a/qcsrc/ecs/systems/physics.qc +++ b/qcsrc/ecs/systems/physics.qc @@ -116,14 +116,14 @@ void sys_phys_update(entity this, float dt) this.com_phys_friction = PHYS_FRICTION(this); this.com_phys_vel_max = PHYS_MAXSPEED(this) * maxspeed_mod; this.com_phys_acc_rate = PHYS_ACCELERATE(this) * maxspeed_mod; - this.com_phys_gravity = '0 0 -1' * PHYS_GRAVITY(this) * dt; + this.com_phys_gravity = -PHYS_GRAVITY(this) * dt; if (PHYS_ENTGRAVITY(this)) { this.com_phys_gravity *= PHYS_ENTGRAVITY(this); } this.com_phys_ladder = true; this.com_phys_friction_air = true; sys_phys_simulate(this, dt); this.com_phys_friction_air = false; this.com_phys_ladder = false; - this.com_phys_gravity = '0 0 0'; + this.com_phys_gravity = 0; } else if (ITEMS_STAT(this) & IT_USING_JETPACK) { PM_jetpack(this, maxspeed_mod, dt); } else if (IS_ONGROUND(this) && (!IS_ONSLICK(this) || !PHYS_SLICK_APPLYGRAVITY(this))) { @@ -134,14 +134,14 @@ void sys_phys_update(entity this, float dt) } } this.com_phys_vel_max = PHYS_MAXSPEED(this) * maxspeed_mod; - this.com_phys_gravity = '0 0 -1' * PHYS_GRAVITY(this) * dt; + this.com_phys_gravity = -PHYS_GRAVITY(this) * dt; if (PHYS_ENTGRAVITY(this)) { this.com_phys_gravity *= PHYS_ENTGRAVITY(this); } this.com_phys_ground = true; this.com_phys_vel_2d = true; sys_phys_simulate(this, dt); this.com_phys_vel_2d = false; this.com_phys_ground = false; - this.com_phys_gravity = '0 0 0'; + this.com_phys_gravity = 0; } else { this.com_phys_acc_rate_air = PHYS_AIRACCELERATE(this) * min(maxspeed_mod, 1); this.com_phys_acc_rate_air_stop = PHYS_AIRSTOPACCELERATE(this) * maxspeed_mod; @@ -181,10 +181,10 @@ void sys_phys_simulate(entity this, float dt) UNSET_ONGROUND(this); if (this.com_phys_friction_air) { - const vector g = -this.com_phys_gravity; - this.velocity_z += g.z / 2; + const float grav = -this.com_phys_gravity; + this.velocity_z += grav / 2; this.velocity = this.velocity * (1 - dt * this.com_phys_friction); - this.velocity_z += g.z / 2; + this.velocity_z += grav / 2; } }