mirror of
https://github.com/open-goal/jak-project
synced 2026-05-28 00:16:20 -04:00
19b8bb81c9
* work in progress streaming rpc, simple test is working * actually add the test * debug windows failure * windows fix maybe * windows 2 * use str-load-status * update types
56 lines
1.5 KiB
Common Lisp
56 lines
1.5 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: text.gc
|
|
;; name in dgo: text
|
|
;; dgos: GAME, ENGINE
|
|
|
|
(define *game-text-word* (new 'global 'string 256 (the string '#f)))
|
|
(define *game-text-line* (new 'global 'string 256 (the string '#f)))
|
|
(define *level-text-file-load-flag* '#t)
|
|
|
|
;; allocate the game text heap if it isn't already allocated.
|
|
(when (= 0 (-> *common-text-heap* base))
|
|
(let ((heap *common-text-heap*))
|
|
(set! (-> heap base) (malloc 'global 34816))
|
|
(set! (-> heap current) (-> heap base))
|
|
(set! (-> heap top-base) (&+ (-> heap base) 34816))
|
|
(set! (-> heap top) (-> heap top-base))
|
|
)
|
|
)
|
|
|
|
(defmethod length game-text-info ((obj game-text-info))
|
|
"Get the length (number of strings) in a game-text-info."
|
|
(-> obj length)
|
|
)
|
|
|
|
(defmethod asize-of game-text-info ((obj game-text-info))
|
|
(the int (+ (-> obj type size) (* 8 (-> obj length))))
|
|
)
|
|
|
|
(defmethod inspect game-text-info ((obj game-text-info))
|
|
(format '#t "[~8x] ~A~%" obj (-> obj type))
|
|
(format '#t "~Tlength: ~D~%" (-> obj length))
|
|
(format '#t "~Tdata[~D]: @ #x~X~%" (-> obj length) (-> obj data))
|
|
|
|
(let ((i 0))
|
|
(while (< i (-> obj length))
|
|
(format '#t "~T [~D] #x~X ~A~%" i (-> obj data i id) (-> obj data i text))
|
|
(+! i 1)
|
|
)
|
|
)
|
|
obj
|
|
)
|
|
|
|
;; todo method 8
|
|
;; todo method 9
|
|
;; todo text-is-loading
|
|
;; todo load-game-text-info
|
|
;; todo load-level-text-files
|
|
;; todo draw-debug-text-box
|
|
;; todo set-font-color-alpha
|
|
;; todo print-game-text-scaled
|
|
;; todo print-game-text
|
|
;; todo disable-level-text-file-loading
|
|
;; todo enable-level-text-file-loading
|
|
|