Files
jak-project/goal_src/pc_debug/font-encode-test.gc
T
ManDude 7ce58f709f process-spawn + pretty printer improvements (#1428)
* some jp support to fix some errors in the original game

* music fade toggle

* recognize `process-new` macros!!

* strip casts in this macro

* rename macro

* fix cast typecheck

* update source 1

* detect kernel stack case

* less boilerplate

* `manipy-spawn` special case

* pretty printer improvements

* revert dumb thing from earlier

* use shell detection on `send-event`

* fix some events

* remove unused argument

* detect `static-attack-info` and add `CondNoElse` to shell detect

* better `attack-info` detect

* support `process-spawn` in multi-lets

* detect `rand-float-gen` pt 1

* detect as return value

* detect in `countdown` and  `dotimes`

* oops this wasnt working

* fancier `send-event`s

* clang

* update source!!

* fix tests

* fine jeez

* uh okay

* fix some accidental regressions

* fix more regressions

* regression fixes

* fix big bug...

* extra safety!
2022-06-10 02:18:08 +01:00

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-spawn-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*)
)