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