mirror of
https://github.com/open-goal/jak-project.git
synced 2025-03-07 05:19:44 +00:00
105 lines
3.4 KiB
Common Lisp
105 lines
3.4 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
|
|
;; This file is used for debugging and testing the large font encoding.
|
|
;; This file should *not* be included as part of any packages, it should be manually loaded by the user.
|
|
|
|
;; To run this:
|
|
|
|
#|
|
|
(make-group "iso") ;; build the game
|
|
(lt) ;; connect to the runtime
|
|
(lg) ;; have the runtime load the game engine
|
|
(test-play) ;; start the game loop
|
|
(ml "goal_src/pc_debug/font-encode-test.gc") ;; build and load this file.
|
|
|#
|
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;;; constants
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(defconstant FONT_ENCODE_TEXT_LEFT 56)
|
|
(defconstant FONT_ENCODE_TEXT_Y 80)
|
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;;; functions
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(define *font-string* (new 'global 'string 64 (the-as string #f)))
|
|
(define *font-string-ex* "")
|
|
(define *font-string-val* #x96)
|
|
|
|
(defun-debug font-encode-test-start ()
|
|
"start the encode test proc"
|
|
|
|
(unless (process-by-name 'font-encode *active-pool*)
|
|
(process-new-function process :name 'font-encode
|
|
(lambda :behavior process ()
|
|
|
|
(stack-size-set! (-> self main-thread) 768)
|
|
|
|
(let ((fnt (new 'stack 'font-context *font-default-matrix* FONT_ENCODE_TEXT_LEFT FONT_ENCODE_TEXT_Y 0.0
|
|
(font-color orange-red) (font-flags shadow kerning large middle)))
|
|
)
|
|
|
|
(set-width! fnt 400)
|
|
(set-height! fnt 100)
|
|
|
|
(loop
|
|
(suspend)
|
|
|
|
(if (or (cpad-pressed? 0 left) (cpad-hold? 0 l1))
|
|
(-! *font-string-val* 1)
|
|
)
|
|
(if (or (cpad-pressed? 0 right) (cpad-hold? 0 r1))
|
|
(+! *font-string-val* 1)
|
|
)
|
|
(if (< *font-string-val* 1)
|
|
(set! *font-string-val* 1)
|
|
)
|
|
(if (> *font-string-val* #x1ff)
|
|
(set! *font-string-val* #x1ff)
|
|
)
|
|
|
|
(clear *font-string*)
|
|
(cond
|
|
((>= *font-string-val* #x100)
|
|
(set! (-> *font-string* data 0) (/ *font-string-val* 256))
|
|
(set! (-> *font-string* data 1) (mod *font-string-val* 256))
|
|
(set! (-> *font-string* data 2) 0)
|
|
)
|
|
(else
|
|
(set! (-> *font-string* data 0) (mod *font-string-val* 256))
|
|
(set! (-> *font-string* data 1) 0)
|
|
)
|
|
)
|
|
|
|
(set-origin! fnt FONT_ENCODE_TEXT_LEFT FONT_ENCODE_TEXT_Y)
|
|
(set-flags! fnt (font-flags shadow kerning large middle))
|
|
(print-game-text *font-string* fnt #f 128 24)
|
|
(set-origin! fnt FONT_ENCODE_TEXT_LEFT (+ FONT_ENCODE_TEXT_Y 32))
|
|
(print-game-text *font-string-ex* fnt #f 128 24)
|
|
(set-origin! fnt FONT_ENCODE_TEXT_LEFT (- FONT_ENCODE_TEXT_Y 16))
|
|
(set-flags! fnt (font-flags shadow kerning middle))
|
|
(print-game-text (string-format "#x~X" *font-string-val*) fnt #f 128 12)
|
|
)
|
|
)
|
|
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
(defun-debug font-encode-test-stop ()
|
|
"stop the encode test proc"
|
|
|
|
(kill-by-name 'font-encode *active-pool*)
|
|
)
|
|
|
|
|