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