NEON-29: Gate descend lip snap on debounced ledge peel.
DESCEND_LIP_SNAP_CAP (0.1) ran whenever goal was below feet by geometry, independent of probe debounce. Feet_y noise on treads toggled 0.32 vs 0.1 snap and caused ~2–3 cm Y jitter. Apply lip cap only when debounced peel is armed and not in peel suspend; otherwise keep FLOOR_SNAP_MOVING.pull/41/head
parent
73d26a90d7
commit
038505ea3e
|
|
@ -567,9 +567,17 @@ func _walk_floor_snap_length(
|
||||||
# fight the approach stairs with snap ↔ assist oscillation.
|
# fight the approach stairs with snap ↔ assist oscillation.
|
||||||
if _auth_walk_goal.y > feet_y + 0.12 and _step_assist_wallish_blocks(want):
|
if _auth_walk_goal.y > feet_y + 0.12 and _step_assist_wallish_blocks(want):
|
||||||
return WALK_STEP_ASSIST_SNAP
|
return WALK_STEP_ASSIST_SNAP
|
||||||
if (
|
# Lip cap only while debounced peel is armed. Otherwise [code]feet_y[/code] wobble on treads
|
||||||
|
# crosses [code]feet_y > goal + 0.08[/code] / margins → 0.32 m vs 0.1 m snap flips each tick
|
||||||
|
# (~2–3 cm body Y jitter on green stairs, x≈19).
|
||||||
|
var descend_lip_geom: bool = (
|
||||||
_auth_walk_goal.y < feet_y - DESCEND_GOAL_Y_MARGIN
|
_auth_walk_goal.y < feet_y - DESCEND_GOAL_Y_MARGIN
|
||||||
and feet_y > _auth_walk_goal.y + 0.08
|
and feet_y > _auth_walk_goal.y + 0.08
|
||||||
|
)
|
||||||
|
if (
|
||||||
|
descend_lip_geom
|
||||||
|
and _walk_debounced_wants_ledge_peel
|
||||||
|
and not _walk_peel_suspend_near_goal(feet_y, horiz_dist)
|
||||||
):
|
):
|
||||||
return minf(FLOOR_SNAP_MOVING, DESCEND_LIP_SNAP_CAP)
|
return minf(FLOOR_SNAP_MOVING, DESCEND_LIP_SNAP_CAP)
|
||||||
return FLOOR_SNAP_MOVING
|
return FLOOR_SNAP_MOVING
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue