From 9120460392b07eaeec9fa40687392ddd575492f8 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Thu, 28 Aug 2025 16:03:49 +0100 Subject: [PATCH] a tiny bit of refactoring, extracting a function to get frames when walking which encapsulates logic for calculating which walk frame to use --- fcore/level/player/player-vec.sml | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/fcore/level/player/player-vec.sml b/fcore/level/player/player-vec.sml index 7c73d2b..7fa6182 100644 --- a/fcore/level/player/player-vec.sml +++ b/fcore/level/player/player-vec.sml @@ -48,24 +48,20 @@ struct | FACING_LEFT => PlayerStandLeft.lerp (rx, ry, 4.0, ww, wh) + fun getWalk (rx, ry, dw, dh, ww, wh, walkFrames, animTimer) = + let + val frame = (animTimer div 2) mod Vector.length walkFrames + val func = Vector.sub (walkFrames, Int.max (frame, 0)) + in + func (rx, ry, dw, dh, ww, wh, 1.0, 1.0, 1.0) + end + fun getWhenOnGround (player, rx, ry, dw, dh, ww, wh) = case #xAxis player of MOVE_RIGHT => - let - val animTimer = #animTimer player - val frame = (animTimer div 2) mod Vector.length walkRightFrames - val func = Vector.sub (walkRightFrames, Int.max (frame, 0)) - in - func (rx, ry, dw, dh, ww, wh, 1.0, 1.0, 1.0) - end + getWalk (rx, ry, dw, dh, ww, wh, walkRightFrames, #animTimer player) | MOVE_LEFT => - let - val animTimer = #animTimer player - val frame = (animTimer div 2) mod Vector.length walkLeftFrames - val func = Vector.sub (walkLeftFrames, Int.max (frame, 0)) - in - func (rx, ry, dw, dh, ww, wh, 1.0, 1.0, 1.0) - end + getWalk (rx, ry, dw, dh, ww, wh, walkLeftFrames, #animTimer player) | STAY_STILL => getIdle (player, rx, ry, dw, dh, ww, wh) fun getWhenJumpingRight (player, amt, rx, ry, dw, dh, ww, wh) =