mirror of
https://github.com/open-goal/jak-project
synced 2026-06-18 15:36:25 -04:00
324def1303
Moves PC-specific entity and debug menu things to `entity-debug.gc` and `default-menu-pc.gc` respectively and makes `(declare-file (debug))` work as it should (no need to wrap the entire file in `(when *debug-segment*` now!). Also changes the DGO descriptor format so that it's less verbose. It might break custom levels, but the format change is very simple so it should not be difficult for anyone to update to the new format. Sadly, you lose the completely useless ability to use DGO object names that don't match the source file name. The horror! I've also gone ahead and expanded the force envmap option to also force the ripple effect to be active. I did not notice any performance or visual drawbacks from this. Gets rid of some distracting LOD and some water pools appearing super flat (and pitch back for dark eco). Fixes #1424
138 lines
4.0 KiB
Common Lisp
Vendored
Generated
138 lines
4.0 KiB
Common Lisp
Vendored
Generated
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; this file is debug only
|
|
(declare-file (debug))
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-part-tester
|
|
:id 127
|
|
:flags (unk-4 unk-6)
|
|
:bounds (static-bspherem 0 0 0 640)
|
|
:rotate ((degrees 2) (degrees 0) (degrees 0))
|
|
:parts ((sp-item 209))
|
|
)
|
|
|
|
;; definition of type part-tester
|
|
(deftype part-tester (process)
|
|
((root trsqv :offset-assert 128)
|
|
(part sparticle-launch-control :offset-assert 132)
|
|
(old-group sparticle-launch-group :offset-assert 136)
|
|
)
|
|
:heap-base #x10
|
|
:method-count-assert 14
|
|
:size-assert #x8c
|
|
:flag-assert #xe0010008c
|
|
(:states
|
|
part-tester-idle
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type part-tester
|
|
(defmethod inspect part-tester ((obj part-tester))
|
|
(when (not obj)
|
|
(set! obj obj)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type process inspect)))
|
|
(t9-0 obj)
|
|
)
|
|
(format #t "~2Troot: ~A~%" (-> obj root))
|
|
(format #t "~2Tpart: ~A~%" (-> obj part))
|
|
(format #t "~2Told-group: ~A~%" (-> obj old-group))
|
|
(label cfg-4)
|
|
obj
|
|
)
|
|
|
|
;; definition for symbol *part-tester-name*, type string
|
|
(define *part-tester-name* (the-as string #f))
|
|
|
|
;; definition for method 10 of type part-tester
|
|
(defmethod deactivate part-tester ((obj part-tester))
|
|
(if (nonzero? (-> obj part))
|
|
(kill-and-free-particles (-> obj part))
|
|
)
|
|
((method-of-type process deactivate) obj)
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate part-tester-idle (part-tester)
|
|
:code (behavior ()
|
|
(until #f
|
|
(let ((gp-0 (entity-by-name *part-tester-name*)))
|
|
(when gp-0
|
|
(let ((s5-0 (-> gp-0 extra process)))
|
|
(if (and s5-0 (type? s5-0 process-drawable) (nonzero? (-> (the-as process-drawable s5-0) root)))
|
|
(set! (-> self root trans quad) (-> (the-as process-drawable s5-0) root trans quad))
|
|
(set! (-> self root trans quad) (-> gp-0 extra trans quad))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(add-debug-x
|
|
#t
|
|
(bucket-id debug-no-zbuf1)
|
|
(-> self root trans)
|
|
(new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
|
|
)
|
|
(let ((gp-1 (-> *part-group-id-table* 127)))
|
|
(let ((s5-1 (-> self root trans)))
|
|
(when (!= gp-1 (-> self old-group))
|
|
(when (nonzero? (-> self part))
|
|
(kill-and-free-particles (-> self part))
|
|
(set! (-> self heap-cur) (&-> (-> self part) type))
|
|
)
|
|
(set! (-> self part) (create-launch-control gp-1 self))
|
|
)
|
|
(if (nonzero? (-> self part))
|
|
(spawn (-> self part) (cond
|
|
((logtest? (-> gp-1 flags) (sp-group-flag screen-space))
|
|
*zero-vector*
|
|
)
|
|
(else
|
|
(empty)
|
|
s5-1
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> self old-group) gp-1)
|
|
)
|
|
(suspend)
|
|
)
|
|
#f
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; definition for function part-tester-init-by-other
|
|
;; INFO: Used lq/sq
|
|
;; WARN: Return type mismatch object vs none.
|
|
(defbehavior part-tester-init-by-other process-drawable ((arg0 vector))
|
|
(set! (-> self root) (new 'process 'trsqv))
|
|
(set! (-> self root trans quad) (-> arg0 quad))
|
|
(set! *part-tester* (process->ppointer self))
|
|
(go part-tester-idle)
|
|
(none)
|
|
)
|
|
|
|
;; definition (perm) for symbol *debug-part-dead-pool*, type dead-pool
|
|
(define-perm *debug-part-dead-pool* dead-pool (new 'debug 'dead-pool 1 #x10000 "*debug-part-dead-pool*"))
|
|
|
|
;; definition for function start-part
|
|
;; WARN: Return type mismatch (pointer process) vs none.
|
|
(defun start-part ()
|
|
(kill-by-type part-tester *active-pool*)
|
|
(process-spawn
|
|
part-tester
|
|
(if *anim-tester*
|
|
(-> *anim-tester* 0 root trans)
|
|
(target-pos 0)
|
|
)
|
|
:from *debug-part-dead-pool*
|
|
)
|
|
(none)
|
|
)
|