summaryrefslogtreecommitdiff
path: root/src/game/physics/movement.cpp
diff options
context:
space:
mode:
authoraura <nw@moneybot.cc>2026-03-04 18:58:21 +0100
committeraura <nw@moneybot.cc>2026-03-04 18:58:21 +0100
commit73045b6642348c8d2fd8b45cae305bbf0344d444 (patch)
tree9898f64cc14f4e95b147e0fab4b9004e41109780 /src/game/physics/movement.cpp
parentfc12cd41c56bc123f01bc073b703fb151dfde814 (diff)
more collision improv
Diffstat (limited to 'src/game/physics/movement.cpp')
-rw-r--r--src/game/physics/movement.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/game/physics/movement.cpp b/src/game/physics/movement.cpp
index fce9d73..0b174e0 100644
--- a/src/game/physics/movement.cpp
+++ b/src/game/physics/movement.cpp
@@ -186,9 +186,6 @@ void gmove_categorize_pos() {
gmove->ground = objl->world;
}
}
-
- if( gmove->ground )
- gmove->velocity.z = 0.f;
}
VEC3 gmove_clip_velocity( VEC3 in, VEC3 norm, F32 overbounce ) {
@@ -433,8 +430,8 @@ void gmove_stay_on_ground() {
if( tr.frac > 0.f && tr.frac < 1.f && !tr.startsolid && tr.normal.z >= 0.7f ) {
F32 delta = fabs( gmove->pos.z - tr.point.z );
- if( delta > BSP_TRACE_EPSILON ) {
- gmove->pos = tr.point + tr.normal * BSP_TRACE_EPSILON * 2.f;
+ if( delta > BSP_TRACE_EPSILON * 0.5f ) {
+ gmove->pos = tr.point;
gmove_check_stuck( &gmove->pos );
}
}
@@ -636,6 +633,9 @@ void gmove_full_walk_move() {
gmove_categorize_pos();
gmove_end_gravity();
+ if( gmove->ground )
+ gmove->velocity.z = 0.f;
+
gmove_check_falling();
}