# HG changeset patch # User Steve Losh # Date 1618782008 14400 # Node ID 05bd74b8d9c4e284674a906c5d76309c549ad044 # Parent 41f2c758451f7fa116a500ee23abd147ab5f074f Clarify colors diff -r 41f2c758451f -r 05bd74b8d9c4 dark.asd --- a/dark.asd Sun Apr 18 16:28:24 2021 -0400 +++ b/dark.asd Sun Apr 18 17:40:08 2021 -0400 @@ -14,6 +14,7 @@ :losh) :serial t - :components ((:module "src" :serial t - :components ((:file "package") - (:file "main"))))) + :components + ((:module "src" :serial t + :components ((:file "package") + (:file "main"))))) diff -r 41f2c758451f -r 05bd74b8d9c4 src/main.lisp --- a/src/main.lisp Sun Apr 18 16:28:24 2021 -0400 +++ b/src/main.lisp Sun Apr 18 17:40:08 2021 -0400 @@ -6,6 +6,7 @@ (defconstant +amber+ (boots:rgb #xFB #x7D #x01)) (defconstant +default+ (boots:attr :fg +amber+ :bg +black+)) (defconstant +reverse+ (boots:attr :fg +black+ :bg +amber+)) +(defconstant +ooc+ (boots:attr :fg +white+ :bg +black+)) (defvar *event* nil) (defvar *mods* nil) @@ -21,6 +22,14 @@ (boots:read-event) (values)) +(defmacro with-in-game-colors (&body body) + `(let ((boots:*border-attr* +default+)) + ,@body)) + +(defmacro with-ooc-colors (&body body) + `(let ((boots:*border-attr* +ooc+)) + ,@body)) + (defmacro with-ui (ui &body body) (alexandria:with-gensyms (prev) `(let ((,prev (boots:root boots:*screen*))) @@ -28,19 +37,20 @@ (unwind-protect (progn ,@body) (setf (boots:root boots:*screen*) ,prev))))) - ;;;; Splash ------------------------------------------------------------------- (defun draw/splash (pad) (boots:draw pad 0 0 *asset/splash*)) (defun splash () - (with-ui (boots:make-canvas :width 50 :height 10 :border t :margin t - :fill-attr +default+ - :draw #'draw/splash) - (boots:redraw) - (press-any-key)) + (with-ooc-colors + (with-ui (boots:make-canvas :width 50 :height 10 :border t :margin t + :fill-attr +default+ + :draw #'draw/splash) + (boots:redraw) + (press-any-key))) (journal)) + ;;;; Journal ------------------------------------------------------------------ (defun draw/journal (pad) (boots:draw pad 0 0 *asset/journal* +default+)) @@ -52,23 +62,25 @@ (boots:event-case (boots:read-event-no-hang) (#\esc (pause)))))) + ;;;; Pause -------------------------------------------------------------------- (defun draw/pause (pad) - (boots:draw pad 0 0 "Paused" +default+) - (boots:draw pad 0 2 "[R]esume" +reverse+) - (boots:draw pad 0 3 "[Q]uit" +default+)) + (boots:draw pad 0 0 "Paused" +ooc+) + (boots:draw pad 0 2 "[R]esume" +ooc+) + (boots:draw pad 0 3 "[Q]uit Game" +ooc+)) + (defun pause () - (with-ui (boots:make-canvas :width 30 :height 10 :border t :margin t - :fill-attr +default+ - :draw #'draw/pause) - (loop (boots:redraw) - (multiple-value-bind (e m) - (boots:read-event-no-hang) - (boots:event-case (values e m) - ((#\r #\esc) (return-from pause)) - (#\q (throw 'quit nil)) - (t (setf *event* e *mods* m))))))) + (with-ooc-colors + (with-ui (boots:make-canvas :width 30 :height 10 :border t :margin t + :fill-attr +ooc+ + :draw #'draw/pause) + (loop (boots:redraw) + (multiple-value-bind (e m) (boots:read-event) + (boots:event-case (values e m) + ((#\r #\esc) (return-from pause)) + (#\q (throw 'quit nil)) + (t (setf *event* e *mods* m)))))))) ;;;; Main --------------------------------------------------------------------- @@ -76,7 +88,7 @@ (boots/terminals/ansi:with-ansi-terminal (terminal :truecolor t) (boots:with-screen (boots:*screen* terminal) (boots:with-light-borders - (let ((boots:*border-attr* +default+)) + (with-in-game-colors (catch 'quit (splash)))))))