a tiny bit of refactoring, extracting a function to get frames when walking which encapsulates logic for calculating which walk frame to use

This commit is contained in:
2025-08-28 16:03:49 +01:00
parent 279b8a1482
commit 9120460392

View File

@@ -48,24 +48,20 @@ struct
| FACING_LEFT => | FACING_LEFT =>
PlayerStandLeft.lerp (rx, ry, 4.0, ww, wh) 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) = fun getWhenOnGround (player, rx, ry, dw, dh, ww, wh) =
case #xAxis player of case #xAxis player of
MOVE_RIGHT => MOVE_RIGHT =>
let getWalk (rx, ry, dw, dh, ww, wh, walkRightFrames, #animTimer player)
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
| MOVE_LEFT => | MOVE_LEFT =>
let getWalk (rx, ry, dw, dh, ww, wh, walkLeftFrames, #animTimer player)
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
| STAY_STILL => getIdle (player, rx, ry, dw, dh, ww, wh) | STAY_STILL => getIdle (player, rx, ry, dw, dh, ww, wh)
fun getWhenJumpingRight (player, amt, rx, ry, dw, dh, ww, wh) = fun getWhenJumpingRight (player, amt, rx, ry, dw, dh, ww, wh) =