From 73045b6642348c8d2fd8b45cae305bbf0344d444 Mon Sep 17 00:00:00 2001 From: aura Date: Wed, 4 Mar 2026 18:58:21 +0100 Subject: more collision improv --- src/game/physics/movement.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/game/physics/movement.cpp') 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(); } -- cgit v1.2.3