mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-21 07:37:45 -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
123 lines
3.4 KiB
Common Lisp
123 lines
3.4 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: part-tester.gc
|
|
;; name in dgo: part-tester
|
|
;; dgos: ENGINE, GAME
|
|
|
|
(define-extern *part-tester* (pointer process))
|
|
|
|
;; DECOMP BEGINS
|
|
|
|
;; this file is debug only
|
|
(declare-file (debug))
|
|
|
|
(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))
|
|
)
|
|
|
|
(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
|
|
)
|
|
)
|
|
|
|
|
|
(define *part-tester-name* (the-as string #f))
|
|
|
|
(defmethod deactivate part-tester ((obj part-tester))
|
|
(if (nonzero? (-> obj part))
|
|
(kill-and-free-particles (-> obj part))
|
|
)
|
|
((method-of-type process deactivate) obj)
|
|
(none)
|
|
)
|
|
|
|
(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 ((gp-1 (-> *part-group-id-table* 96)))
|
|
(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)
|
|
)
|
|
)
|
|
|
|
;; 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)
|
|
)
|
|
|
|
(define-perm *debug-part-dead-pool* dead-pool (new 'debug 'dead-pool 1 #x10000 "*debug-part-dead-pool*"))
|
|
|
|
;; 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)
|
|
)
|