Simplified menu drawing; standardized variable names
This commit is contained in:
parent
27b6a4d840
commit
93e666f1bf
1 changed files with 27 additions and 24 deletions
51
game.scm
51
game.scm
|
@ -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))
|
||||
|
|
Loading…
Add table
Reference in a new issue