Simplified menu drawing; standardized variable names

This commit is contained in:
Amy Grinn 2024-12-31 13:15:03 -05:00
parent 27b6a4d840
commit 93e666f1bf
No known key found for this signature in database
GPG key ID: 6B558BED1DCF3192

View file

@ -742,7 +742,7 @@
;; + the y padding again ;; + the y padding again
(let* ((padding-y 1) (let* ((padding-y 1)
(text-offset-y (* 0.75 tile-height)) (text-offset-y (* 0.75 tile-height))
(width 8) (width 8.0)
(num-items (vector-length (menu-items (current-menu)))) (num-items (vector-length (menu-items (current-menu))))
(height (+ 2 ;; Menu title + back/ellipses (height (+ 2 ;; Menu title + back/ellipses
(* 2 padding-y) ;; Padding (* 2 padding-y) ;; Padding
@ -773,31 +773,34 @@
(r-end (- (+ r-start height) padding-y)) (r-end (- (+ r-start height) padding-y))
;; r will not take into account which page you are on ;; r will not take into account which page you are on
(r-page-offset (- (* (current-menu-page) menu:max-items) (current-menu-page))) (r-page-offset (- (* (current-menu-page) menu:max-items) (current-menu-page)))
(gutter-x (+ tile-width x-start)) (x-gutter (+ tile-width x-start))
(text-x (+ tile-width gutter-x))) (x-text (+ tile-width x-gutter)))
(do ((r r-start (1+ r)) (y y-start (+ tile-height y))) (do ((r r-start (1+ r)) (y y-start (+ tile-height y)))
((or (>= r r-end) (>= (+ r r-page-offset) num-items))) ((or (>= r r-end) (>= (+ r r-page-offset) num-items)))
(let ((y-text (+ y text-offset-y))
(r-page (+ r r-page-offset)))
;; Draw menu title ;; Draw menu title
(when (= r r-start) (when (= r r-start)
(set-text-align! context "center") (set-text-align! context "center")
(fill-text context (menu-name (current-menu)) (fill-text context (menu-name (current-menu))
(vec2-x center) (+ y text-offset-y))) (vec2-x center) y-text))
(set-text-align! context "left") (set-text-align! context "left")
;; indicator ;; indicator
(when (= (+ r r-page-offset) (current-menu-index)) (when (= (+ r r-page-offset) (current-menu-index))
(fill-text context "▸" gutter-x (+ y text-offset-y))) (fill-text context "▸" x-gutter y-text))
;; Menu items ;; Menu items
(when (>= r -1) (when (>= r -1)
(fill-text context (fill-text
context
(cond (cond
((= (+ r r-page-offset) -1) "Back") ((= r-page -1) "Back")
((or (= r -1) (and (= r (1- r-end)) ((or (= r -1) (and (= r (1- r-end))
(< (+ r r-page-offset) (1- num-items)))) (< r-page (1- num-items))))
"...") "...")
(else (else
(car (vector-ref (menu-items (current-menu)) (car (vector-ref (menu-items (current-menu))
(+ r r-page-offset))))) r-page))))
text-x (+ y text-offset-y))))))) x-text y-text)))))))
(define (draw-controls) (define (draw-controls)
(let ((cx1 (/ game-width 4.0)) (let ((cx1 (/ game-width 4.0))