From 995342fb74fdd1ba5aeaa172a428538e7dd0dcdc Mon Sep 17 00:00:00 2001 From: Gene Pasquet Date: Wed, 8 Apr 2026 01:05:50 +0100 Subject: Code cleanup --- input.scm | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'input.scm') diff --git a/input.scm b/input.scm index 94b29ed..eaaade4 100644 --- a/input.scm +++ b/input.scm @@ -162,23 +162,21 @@ ((< vx 0) (entity-set entity #:facing -1)) (else entity))) +(define (compute-input-delta input-map held?) + (fold (lambda (entry acc) + (if (held? (car entry)) + (cons (+ (car acc) (cadr entry)) + (+ (cdr acc) (cddr entry))) + acc)) + '(0 . 0) + input-map)) + (define (apply-input-to-entity entity held?) (let ((input-map (entity-ref entity #:input-map #f))) (if (not input-map) entity - (let* ((delta (fold (lambda (entry acc) - (let* ((action (car entry)) - (d (cdr entry)) - (dvx (car d)) - (dvy (cdr d))) - (if (held? action) - (cons (+ (car acc) dvx) - (+ (cdr acc) dvy)) - acc))) - '(0 . 0) - input-map)) - (speed (entity-ref entity #:move-speed 1)) - (vx (* speed (car delta)))) + (let* ((delta (compute-input-delta input-map held?)) + (vx (* (entity-ref entity #:move-speed 1) (car delta)))) (set-facing-from-vx (entity-set entity #:vx vx) vx))))) ) ;; end module -- cgit v1.2.3