mirror of
https://github.com/open-goal/jak-project
synced 2026-08-08 02:31:30 -04:00
122de4ecf5
After spending the last month staring at and comparing Jak 3 and Jak 1 versions of a bunch of `target` code for my jetboard mod, I figured this would be a good opportunity to revive this ancient PR #1714 along with some other small misc fixes/improvements. Instead of directly replacing the old fields, I decided to opt for using overlay fields to maintain backwards compatibility with existing manual patches, files without ref tests and mods that might use these fields.
403 lines
13 KiB
Common Lisp
Vendored
Generated
403 lines
13 KiB
Common Lisp
Vendored
Generated
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; definition of type dark-eco-pool
|
|
(deftype dark-eco-pool (water-anim)
|
|
()
|
|
)
|
|
|
|
;; definition for method 3 of type dark-eco-pool
|
|
(defmethod inspect ((this dark-eco-pool))
|
|
(let ((t9-0 (method-of-type water-anim inspect)))
|
|
(t9-0 this)
|
|
)
|
|
this
|
|
)
|
|
|
|
;; definition for symbol ripple-for-misty-dark-eco-pool, type ripple-wave-set
|
|
(define ripple-for-misty-dark-eco-pool (new 'static 'ripple-wave-set
|
|
:count 3
|
|
:converted #f
|
|
:normal-scale 3.0
|
|
:wave (new 'static 'inline-array ripple-wave 4
|
|
(new 'static 'ripple-wave :scale 40.0 :xdiv 2 :speed 0.5)
|
|
(new 'static 'ripple-wave :scale 15.0 :xdiv -2 :zdiv 2 :speed 2.0)
|
|
(new 'static 'ripple-wave :scale 3.0 :xdiv 5 :zdiv 3 :speed 2.0)
|
|
(new 'static 'ripple-wave)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for symbol ripple-for-maincave-dark-eco-pool, type ripple-wave-set
|
|
(define ripple-for-maincave-dark-eco-pool
|
|
(new 'static 'ripple-wave-set
|
|
:count 3
|
|
:converted #f
|
|
:normal-scale 8.57
|
|
:wave (new 'static 'inline-array ripple-wave 4
|
|
(new 'static 'ripple-wave :scale 14.0 :xdiv 1 :speed 1.0)
|
|
(new 'static 'ripple-wave :scale 5.25 :xdiv -1 :zdiv 1 :speed 4.0)
|
|
(new 'static 'ripple-wave :scale 0.7 :xdiv 5 :zdiv 3 :speed 2.0)
|
|
(new 'static 'ripple-wave)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for symbol ripple-for-finalboss-dark-eco-pool, type ripple-wave-set
|
|
(define ripple-for-finalboss-dark-eco-pool
|
|
(new 'static 'ripple-wave-set
|
|
:count 3
|
|
:converted #f
|
|
:normal-scale 4.0
|
|
:wave (new 'static 'inline-array ripple-wave 4
|
|
(new 'static 'ripple-wave :scale 25.0 :xdiv 2 :speed -2.0)
|
|
(new 'static 'ripple-wave :scale 15.0 :xdiv -2 :zdiv 2 :speed 3.0)
|
|
(new 'static 'ripple-wave :scale 4.0 :xdiv 5 :zdiv 3 :speed 4.0)
|
|
(new 'static 'ripple-wave)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for symbol ripple-for-dark-eco-pool, type ripple-wave-set
|
|
(define ripple-for-dark-eco-pool (new 'static 'ripple-wave-set
|
|
:count 3
|
|
:converted #f
|
|
:normal-scale 3.0
|
|
:wave (new 'static 'inline-array ripple-wave 4
|
|
(new 'static 'ripple-wave :scale 40.0 :xdiv 1 :speed 1.0)
|
|
(new 'static 'ripple-wave :scale 15.0 :xdiv -1 :zdiv 1 :speed 4.0)
|
|
(new 'static 'ripple-wave :scale 2.0 :xdiv 5 :zdiv 3 :speed 2.0)
|
|
(new 'static 'ripple-wave)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for symbol ripple-for-sunken-dark-eco-helix-room, type ripple-wave-set
|
|
(define ripple-for-sunken-dark-eco-helix-room
|
|
(new 'static 'ripple-wave-set
|
|
:count 3
|
|
:converted #f
|
|
:normal-scale 8.0
|
|
:wave (new 'static 'inline-array ripple-wave 4
|
|
(new 'static 'ripple-wave :scale 15.0 :xdiv 1 :speed 1.0)
|
|
(new 'static 'ripple-wave :scale 5.625 :xdiv -1 :zdiv 1 :speed 4.0)
|
|
(new 'static 'ripple-wave :scale 0.75 :xdiv 5 :zdiv 3 :speed 2.0)
|
|
(new 'static 'ripple-wave)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for method 25 of type dark-eco-pool
|
|
;; INFO: Return type mismatch object vs none.
|
|
(defmethod water-vol-method-25 ((this dark-eco-pool))
|
|
(let ((t9-0 (method-of-type water-anim water-vol-method-25)))
|
|
(t9-0 this)
|
|
)
|
|
(logclear! (-> this flag) (water-flag part-water))
|
|
(logior! (-> this flag) (water-flag dark-eco))
|
|
(set! (-> this attack-event)
|
|
(the-as symbol ((the-as
|
|
(function res-lump symbol symbol float structure (pointer res-tag) pointer object)
|
|
(method-of-type res-lump get-property-struct)
|
|
)
|
|
(-> this entity)
|
|
'attack-event
|
|
'interp
|
|
-1000000000.0
|
|
'dark-eco-pool
|
|
(the-as (pointer res-tag) #f)
|
|
*res-static-buf*
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 22 of type dark-eco-pool
|
|
;; INFO: Return type mismatch ripple-wave-set vs none.
|
|
(defmethod water-vol-method-22 ((this dark-eco-pool))
|
|
(let ((t9-0 (method-of-type water-anim water-vol-method-22)))
|
|
(t9-0 this)
|
|
)
|
|
(let ((gp-0 (new 'process 'ripple-control)))
|
|
(set! (-> this draw ripple) gp-0)
|
|
(set! (-> gp-0 global-scale) 3072.0)
|
|
(set! (-> gp-0 close-fade-dist) 163840.0)
|
|
(set! (-> gp-0 far-fade-dist) 245760.0)
|
|
(set! (-> gp-0 waveform) ripple-for-dark-eco-pool)
|
|
(set! (-> gp-0 query) (new 'process 'ripple-merc-query 100))
|
|
(case (-> this look)
|
|
((32)
|
|
(set! (-> gp-0 waveform) ripple-for-misty-dark-eco-pool)
|
|
)
|
|
((15 16 17 18 19 20)
|
|
(set! (-> gp-0 waveform) ripple-for-maincave-dark-eco-pool)
|
|
)
|
|
((40)
|
|
(set! (-> gp-0 waveform) ripple-for-sunken-dark-eco-helix-room)
|
|
)
|
|
((41)
|
|
(set! (-> gp-0 waveform) ripple-for-finalboss-dark-eco-pool)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-dark-eco-nasty
|
|
:id 444
|
|
:flags (use-local-clock)
|
|
:bounds (static-bspherem 0 0 0 8)
|
|
:parts ((sp-item 2020 :fade-after (meters 50)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2020
|
|
:init-specs ((:texture (hotdot effects))
|
|
(:num 1.0)
|
|
(:y (meters 0))
|
|
(:scale-x (meters 1) (meters 4))
|
|
(:scale-y (meters 0.25))
|
|
(:r 255.0)
|
|
(:g 255.0)
|
|
(:b 255.0)
|
|
(:a 96.0 32.0)
|
|
(:scalevel-x (meters 0.1875))
|
|
(:scalevel-y (meters -0.001875))
|
|
(:fade-a -3.2)
|
|
(:timer (seconds 0.035))
|
|
(:flags (bit2 bit3 bit14))
|
|
(:next-time (seconds 0.05))
|
|
(:next-launcher 2021)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2021
|
|
:init-specs ((:r 255.0) (:g 128.0 128.0) (:b 0.0) (:fade-a -1.28))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-dark-eco-pool-nasty
|
|
:id 445
|
|
:duration (seconds 2)
|
|
:linger-duration (seconds 2)
|
|
:flags (use-local-clock)
|
|
:bounds (static-bspherem 0 0 0 12)
|
|
:parts ((sp-item 2056 :fade-after (meters 100) :period (seconds 2) :length (seconds 0.017))
|
|
(sp-item 2057 :fade-after (meters 100) :period (seconds 2) :length (seconds 0.017) :binding 2052)
|
|
(sp-item 2052 :flags (start-dead launch-asap) :binding 2053)
|
|
(sp-item 2053 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
|
|
(sp-item 2052 :flags (start-dead launch-asap) :binding 2053)
|
|
(sp-item 2053 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
|
|
(sp-item 2052 :flags (start-dead launch-asap) :binding 2053)
|
|
(sp-item 2053 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
|
|
(sp-item 2052 :flags (start-dead launch-asap) :binding 2053)
|
|
(sp-item 2053 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
|
|
(sp-item 2058 :fade-after (meters 100) :period (seconds 2) :length (seconds 0.017) :binding 2054)
|
|
(sp-item 2054 :flags (start-dead launch-asap) :binding 2055)
|
|
(sp-item 2055 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
|
|
(sp-item 2054 :flags (start-dead launch-asap) :binding 2055)
|
|
(sp-item 2055 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
|
|
(sp-item 2054 :flags (start-dead launch-asap) :binding 2055)
|
|
(sp-item 2055 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
|
|
(sp-item 2054 :flags (start-dead launch-asap) :binding 2055)
|
|
(sp-item 2055 :fade-after (meters 80) :falloff-to (meters 100) :flags (start-dead))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2056
|
|
:init-specs ((:texture (starflash effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 8))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0 96.0)
|
|
(:g 0.0 32.0)
|
|
(:b 64.0 32.0)
|
|
(:a 64.0)
|
|
(:fade-a -1.8285716)
|
|
(:timer (seconds 0.18))
|
|
(:flags (bit2 bit3 bit14))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2057
|
|
:init-specs ((:texture (starflash effects))
|
|
(:num 1.0 6.0)
|
|
(:y (meters 1))
|
|
(:scale-x (meters 0.1))
|
|
(:scale-y :copy scale-x)
|
|
(:a 0.0)
|
|
(:vel-y (meters 0.04) (meters 0.02))
|
|
(:accel-y (meters -0.00083333335))
|
|
(:friction 0.94)
|
|
(:timer (seconds 0.8))
|
|
(:flags (bit3))
|
|
(:conerot-x (degrees 0) (degrees 140))
|
|
(:conerot-y (degrees 0) (degrees 360))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2052
|
|
:init-specs ((:texture (hotdot effects))
|
|
(:num 1.0)
|
|
(:y (meters 0) (meters 16))
|
|
(:z (meters 0.3) (meters 0.3))
|
|
(:scale-x (meters 0.4) (meters 0.3))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0 96.0)
|
|
(:g 0.0 32.0)
|
|
(:b 64.0 32.0)
|
|
(:a 64.0 64.0)
|
|
(:omega 0.0 65536.0)
|
|
(:vel-x (meters 0.026666667) (meters 0.10666667))
|
|
(:scalevel-x (meters -0.000909091))
|
|
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-g -0.26666668)
|
|
(:fade-a -0.19393939)
|
|
(:timer (seconds 0.2) (seconds 0.597))
|
|
(:flags (bit2 bit3 bit7 bit14))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2053
|
|
:init-specs ((:texture (hotdot effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 0.4) (meters 0.1))
|
|
(:scale-y :copy scale-x)
|
|
(:r 32.0 96.0)
|
|
(:g 0.0 32.0)
|
|
(:b 64.0 32.0)
|
|
(:a 32.0 32.0)
|
|
(:scalevel-x (meters -0.0006190476))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-a -0.01904762)
|
|
(:accel-y (meters -0.000100000005) (meters -0.00015))
|
|
(:timer (seconds 0.1) (seconds 0.797))
|
|
(:flags (bit2 bit3 bit14))
|
|
(:next-time (seconds 0.8))
|
|
(:next-launcher 198)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2058
|
|
:init-specs ((:texture (starflash effects))
|
|
(:num 1.0 6.0)
|
|
(:y (meters 1))
|
|
(:scale-x (meters 0.1))
|
|
(:scale-y :copy scale-x)
|
|
(:a 0.0)
|
|
(:vel-y (meters 0.04) (meters 0.02))
|
|
(:accel-y (meters -0.00083333335))
|
|
(:friction 0.94)
|
|
(:timer (seconds 0.8))
|
|
(:flags (bit3))
|
|
(:conerot-x (degrees 0) (degrees 140))
|
|
(:conerot-y (degrees 0) (degrees 360))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2054
|
|
:init-specs ((:texture (hotdot effects))
|
|
(:num 1.0)
|
|
(:y (meters 0) (meters 16))
|
|
(:z (meters 0.3) (meters 0.3))
|
|
(:scale-x (meters 0.4) (meters 0.3))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 16.0 32.0)
|
|
(:g 0.0 16.0)
|
|
(:b 192.0 64.0)
|
|
(:a 64.0 64.0)
|
|
(:omega 0.0 65536.0)
|
|
(:vel-x (meters 0.026666667) (meters 0.10666667))
|
|
(:scalevel-x (meters -0.000909091))
|
|
(:rotvel-z (degrees -0.3) 1 (degrees 0.6))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-g -0.26666668)
|
|
(:fade-a -0.19393939)
|
|
(:timer (seconds 0.2) (seconds 0.597))
|
|
(:flags (bit2 bit3 bit7 bit14))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2055
|
|
:init-specs ((:texture (hotdot effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 0.4) (meters 0.1))
|
|
(:scale-y :copy scale-x)
|
|
(:r 16.0 32.0)
|
|
(:g 0.0 16.0)
|
|
(:b 192.0 64.0)
|
|
(:a 32.0 32.0)
|
|
(:scalevel-x (meters -0.0006190476))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-a -0.01904762)
|
|
(:accel-y (meters -0.000100000005) (meters -0.00015))
|
|
(:timer (seconds 0.1) (seconds 0.797))
|
|
(:flags (bit2 bit3 bit14))
|
|
(:next-time (seconds 0.8))
|
|
(:next-launcher 198)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate water-vol-idle (dark-eco-pool)
|
|
:virtual #t
|
|
:trans (behavior ()
|
|
(let ((t9-0 (-> (method-of-type water-anim water-vol-idle) trans)))
|
|
(if t9-0
|
|
(t9-0)
|
|
)
|
|
)
|
|
(let* ((gp-0 (-> self draw ripple))
|
|
(f0-1 (the float (logand (current-time) #xffff)))
|
|
(f30-0 (square (cos (* 5.0 f0-1))))
|
|
)
|
|
(let ((s5-0 (-> self draw ripple query)))
|
|
(set! (-> self draw ripple send-query) #t)
|
|
(set! (-> s5-0 start-vertex) (rand-vu-int-range 0 255))
|
|
(set! (-> s5-0 vertex-skip) 256)
|
|
(when (zero? (rand-vu-int-range 0 15))
|
|
(when (and (nonzero? (-> s5-0 vertex-count)) (< #x32000 (memory-free *nk-dead-pool*)))
|
|
(let ((s3-0 (rand-vu-int-range 0 (+ (-> s5-0 vertex-count) -1))))
|
|
(process-spawn
|
|
part-tracker
|
|
:init part-tracker-init
|
|
group-dark-eco-pool-nasty
|
|
-1
|
|
#f
|
|
#f
|
|
#f
|
|
(-> s5-0 data s3-0)
|
|
:to *entity-pool*
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(case (-> self look)
|
|
((32)
|
|
(set! (-> gp-0 global-scale) (* 4096.0 (* 1.5 (+ 1.0 f30-0))))
|
|
(set! (-> gp-0 individual-normal-scale) (+ 0.5 (/ f30-0 2)))
|
|
)
|
|
(else
|
|
(set! (-> gp-0 global-scale) (* 4096.0 (* 3.0 (+ 1.0 f30-0))))
|
|
(set! (-> gp-0 individual-normal-scale) (+ 0.5 (/ f30-0 2)))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|