mirror of
https://github.com/open-goal/jak-project
synced 2026-08-08 02:31:30 -04:00
2023 lines
65 KiB
Common Lisp
Vendored
Generated
2023 lines
65 KiB
Common Lisp
Vendored
Generated
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-turret-warning
|
|
:id 458
|
|
:duration (seconds 0.2)
|
|
:linger-duration (seconds 1)
|
|
:flags (use-local-clock)
|
|
:bounds (static-bspherem 0 0 0 15)
|
|
:parts ((sp-item 2037 :flags (bit7) :period (seconds 3.1) :length (seconds 0.135)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-turret-warning-down
|
|
:id 459
|
|
:duration (seconds 0.2)
|
|
:linger-duration (seconds 1)
|
|
:flags (use-local-clock unk-6)
|
|
:bounds (static-bspherem 0 0 0 15)
|
|
:rotate ((degrees 180) (degrees 0) (degrees 0))
|
|
:parts ((sp-item 2037 :flags (bit7) :period (seconds 3.1) :length (seconds 0.135)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-turret-warning-side
|
|
:id 460
|
|
:duration (seconds 0.2)
|
|
:linger-duration (seconds 1)
|
|
:flags (use-local-clock unk-6)
|
|
:bounds (static-bspherem 0 0 0 15)
|
|
:rotate ((degrees 90) (degrees 90) (degrees 0))
|
|
:parts ((sp-item 2037 :flags (bit7) :period (seconds 3.1) :length (seconds 0.135)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2037
|
|
:init-specs ((:texture (bigpuff effects))
|
|
(:num 16.0)
|
|
(:x (meters 4))
|
|
(:y (meters 1))
|
|
(:scale-x (meters 1) (meters 1))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0 128.0)
|
|
(:g :copy r)
|
|
(:b :copy g)
|
|
(:a 32.0 32.0)
|
|
(:vel-x (meters 0.026666667) (meters 0.026666667))
|
|
(:vel-y (meters 0.026666667) (meters 0.026666667))
|
|
(:scalevel-x (meters 0.016666668) (meters 0.016666668))
|
|
(:rotvel-z (degrees -0.12) (degrees 0.24))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:accel-y (meters -0.00033333333) (meters -0.00033333333))
|
|
(:friction 0.94)
|
|
(:timer (seconds 1.5))
|
|
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-12))
|
|
(:next-time (seconds 0.117) (seconds 0.047))
|
|
(:next-launcher 2038)
|
|
(:rotate-y (degrees 0) (degrees 3600))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2038
|
|
:init-specs ((:fade-a -0.14222223 -0.42666668))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-barons-ship-light1
|
|
:id 461
|
|
:bounds (static-bspherem 0 0 0 1)
|
|
:parts ((sp-item 2039 :flags (bit6) :period (seconds 1.25) :length (seconds 0.017)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-barons-ship-light2
|
|
:id 462
|
|
:bounds (static-bspherem 0 0 0 1)
|
|
:parts ((sp-item 2039 :flags (bit6) :period (seconds 1.25) :length (seconds 0.017) :offset 75))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-barons-ship-light3
|
|
:id 463
|
|
:bounds (static-bspherem 0 0 0 1)
|
|
:parts ((sp-item 2039 :flags (bit6) :period (seconds 1.25) :length (seconds 0.017) :offset 150))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-barons-ship-light4
|
|
:id 464
|
|
:bounds (static-bspherem 0 0 0 1)
|
|
:parts ((sp-item 2039 :flags (bit6) :period (seconds 1.25) :length (seconds 0.017) :offset 225))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-barons-ship-light5
|
|
:id 465
|
|
:bounds (static-bspherem 0 0 0 1)
|
|
:parts ((sp-item 2039 :flags (bit6) :period (seconds 1.25) :length (seconds 0.017) :offset 300))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2039
|
|
:init-specs ((:texture (glow-hotdot effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 3) (meters 0.5))
|
|
(:rot-x (degrees 5.625))
|
|
(:scale-y :copy scale-x)
|
|
(:r 255.0)
|
|
(:g 0.0 128.0)
|
|
(:b 0.0)
|
|
(:a 64.0 32.0)
|
|
(:omega (degrees 22509))
|
|
(:timer (seconds 0.25))
|
|
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
|
(:userdata 2048.0)
|
|
(:func 'sparticle-track-root)
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-turret-smoke-trail
|
|
:id 466
|
|
:linger-duration (seconds 1.5)
|
|
:bounds (static-bspherem 0 0 0 6)
|
|
:parts ((sp-item 2040 :flags (bit7)) (sp-item 2041 :flags (bit6 bit7)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-turret-smoke-trail-down
|
|
:id 467
|
|
:linger-duration (seconds 1.5)
|
|
:flags (unk-6)
|
|
:bounds (static-bspherem 0 0 0 6)
|
|
:rotate ((degrees 180) (degrees 0) (degrees 0))
|
|
:parts ((sp-item 2040 :flags (bit7)) (sp-item 2041 :flags (bit6 bit7)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-turret-smoke-trail-side
|
|
:id 468
|
|
:linger-duration (seconds 1.5)
|
|
:flags (unk-6)
|
|
:bounds (static-bspherem 0 0 0 6)
|
|
:rotate ((degrees 90) (degrees 90) (degrees 0))
|
|
:parts ((sp-item 2040 :flags (bit7)) (sp-item 2041 :flags (bit6 bit7)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2041
|
|
:init-specs ((:texture (glow-hotdot effects))
|
|
(:num 1.0)
|
|
(:x (meters 0) (meters 2))
|
|
(:y (meters 1))
|
|
(:scale-x (meters 12) (meters 3))
|
|
(:rot-x (degrees 6.7500005))
|
|
(:rot-z (degrees 0) (degrees 3600))
|
|
(:scale-y :copy scale-x)
|
|
(:r 255.0)
|
|
(:g 64.0 128.0)
|
|
(:b 0.0 64.0)
|
|
(:a 12.0 4.0)
|
|
(:omega (degrees 4518))
|
|
(:fade-a -0.8)
|
|
(:timer (seconds 0.067))
|
|
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
|
(:userdata 6144.0)
|
|
(:rotate-y (degrees 0) (degrees 3600))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2040
|
|
:init-specs ((:texture (bigpuff effects))
|
|
(:birth-func 'birth-func-texture-group)
|
|
(:num 0.5)
|
|
(:x (meters 0) (meters 4))
|
|
(:scale-x (meters 8) (meters 4))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 255.0)
|
|
(:g 246.0)
|
|
(:b 149.0)
|
|
(:a 32.0 32.0)
|
|
(:vel-y (meters 0.1) (meters 0.033333335))
|
|
(:scalevel-x (meters 0.026666667) (meters 0.006666667))
|
|
(:rotvel-z (degrees -0.2) (degrees 0.4))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r -0.14666666)
|
|
(:fade-g -0.7866667)
|
|
(:fade-b -0.88)
|
|
(:fade-a -0.053333335 -0.053333335)
|
|
(:accel-x (meters 0.0013333333) (meters 0.00033333333))
|
|
(:accel-y (meters 0.0001) (meters 0.0001))
|
|
(:friction 0.96)
|
|
(:timer (seconds 8))
|
|
(:flags (sp-cpuinfo-flag-2 use-global-acc))
|
|
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc00000 #xc03300))
|
|
(:next-time (seconds 0.167) (seconds 0.08))
|
|
(:next-launcher 2042)
|
|
(:rotate-y (degrees 0) (degrees 3600))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2042
|
|
:init-specs ((:scalevel-x (meters 0.013333334) (meters 0.0033333334))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:next-time (seconds 0.25) (seconds 0.08))
|
|
(:next-launcher 2043)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2043
|
|
:init-specs ((:scalevel-x (meters 0.006666667) (meters 0.0016666667))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r -2.33)
|
|
(:fade-g -1.28)
|
|
(:fade-b -0.17)
|
|
(:next-time (seconds 0.25) (seconds 0.08))
|
|
(:next-launcher 2044)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2044
|
|
:init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -0.03 -0.24))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-drill-barons-ship-explosion
|
|
:id 469
|
|
:duration (seconds 3)
|
|
:linger-duration (seconds 2)
|
|
:flags (use-local-clock)
|
|
:bounds (static-bspherem 0 0 0 2)
|
|
:parts ((sp-item 2045 :period (seconds 32) :length (seconds 0.085))
|
|
(sp-item 2046 :period (seconds 32) :length (seconds 0.035) :offset 10)
|
|
(sp-item 2047 :period (seconds 32) :length (seconds 0.167) :offset 25)
|
|
(sp-item 2048 :period (seconds 32) :length (seconds 0.117) :offset 10)
|
|
(sp-item 2049 :period (seconds 32) :length (seconds 0.167) :offset 15)
|
|
(sp-item 2050 :period (seconds 32) :length (seconds 0.017))
|
|
(sp-item 2051 :period (seconds 32) :length (seconds 0.167) :offset 15)
|
|
(sp-item 2052 :period (seconds 32) :length (seconds 0.017))
|
|
(sp-item 2053 :flags (is-3d) :period (seconds 32) :length (seconds 0.017))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2053
|
|
:init-specs ((:texture (water-ring effects))
|
|
(:num 8.0)
|
|
(:scale-x (meters 16))
|
|
(:scale-y :copy scale-x)
|
|
(:r 255.0)
|
|
(:g :copy r)
|
|
(:b 128.0)
|
|
(:a 136.0)
|
|
(:scalevel-x (meters 2))
|
|
(:rotvel-y (degrees 0.1))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r -1.0625)
|
|
(:fade-g -2.125)
|
|
(:fade-b -2.1333334)
|
|
(:fade-a -3.2)
|
|
(:timer (seconds 1.067))
|
|
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
|
|
(:next-time (seconds 0.135))
|
|
(:next-launcher 2054)
|
|
(:rotate-y (degrees 0) (degrees 3600))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2054
|
|
:init-specs ((:fade-a -0.06666667))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2050
|
|
:init-specs ((:texture (glow effects))
|
|
(:num 1.0)
|
|
(:y (meters -2.5))
|
|
(:scale-x (meters 32))
|
|
(:rot-x (degrees 45))
|
|
(:scale-y :copy scale-x)
|
|
(:r 255.0)
|
|
(:g 255.0)
|
|
(:b 255.0)
|
|
(:a 96.0)
|
|
(:scalevel-x (meters 0.26666668))
|
|
(:rotvel-z (degrees 0.3))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r 0.0)
|
|
(:fade-g -1.28)
|
|
(:fade-b -5.1)
|
|
(:fade-a 0.0)
|
|
(:timer (seconds 0.217))
|
|
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
|
(:userdata 122880.0)
|
|
(:next-time (seconds 0.1))
|
|
(:next-launcher 2055)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2055
|
|
:init-specs ((:scalevel-x (meters -0.22857143))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r 0.0)
|
|
(:fade-g -3.6571429)
|
|
(:fade-b 0.0)
|
|
(:fade-a -2.7428572)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2052
|
|
:init-specs ((:texture (glow-soft effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 120))
|
|
(:rot-x (degrees 45))
|
|
(:scale-y :copy scale-x)
|
|
(:r 255.0)
|
|
(:g 255.0)
|
|
(:b 255.0)
|
|
(:a 24.0)
|
|
(:scalevel-x (meters 0.4))
|
|
(:rotvel-z (degrees 0.3))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r 0.0)
|
|
(:fade-g -4.266667)
|
|
(:fade-b -4.266667)
|
|
(:fade-a 0.0)
|
|
(:timer (seconds 0.5))
|
|
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
|
|
(:userdata 409600.0)
|
|
(:next-time (seconds 0.25))
|
|
(:next-launcher 2056)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2056
|
|
:init-specs ((:scalevel-x (meters 0))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r -0.85333335)
|
|
(:fade-g -1.7066667)
|
|
(:fade-b -1.7066667)
|
|
(:fade-a -0.64)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2048
|
|
:init-specs ((:texture (motion-blur-part effects))
|
|
(:num 16.0)
|
|
(:y (meters 0))
|
|
(:scale-x (meters 2.5))
|
|
(:rot-x 4)
|
|
(:scale-y (meters 0.2) (meters 0.3))
|
|
(:r 255.0)
|
|
(:g 255.0)
|
|
(:b 255.0)
|
|
(:a 64.0 32.0)
|
|
(:omega (degrees 0.0675))
|
|
(:vel-y (meters 0.53333336) (meters 0.33333334))
|
|
(:fade-b -8.0)
|
|
(:accel-y (meters -0.0033333334) (meters -0.0016666667))
|
|
(:friction 0.9 0.08)
|
|
(:timer (seconds 1.5) (seconds 0.997))
|
|
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
|
|
(:func 'sparticle-motion-blur)
|
|
(:next-time (seconds 0.05))
|
|
(:next-launcher 2057)
|
|
(:conerot-x (degrees 0) (degrees 3600))
|
|
(:conerot-y (degrees 0) (degrees 3600))
|
|
(:rotate-y (degrees 90))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2057
|
|
:init-specs ((:r 255.0)
|
|
(:g 255.0)
|
|
(:b 0.0)
|
|
(:fade-r 0.0)
|
|
(:fade-g -2.6133332)
|
|
(:fade-b -1.7066667)
|
|
(:fade-a -0.096 -0.096)
|
|
(:next-time (seconds 0.25))
|
|
(:next-launcher 2058)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2058
|
|
:init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2051
|
|
:init-specs ((:texture (explosion-wave effects))
|
|
(:num 5.0)
|
|
(:y (meters -2.5))
|
|
(:scale-x (meters 6) (meters 8))
|
|
(:rot-x 4)
|
|
(:rot-z (degrees 0) (degrees 3600) :store)
|
|
(:scale-y (meters 20) (meters 8))
|
|
(:r 255.0)
|
|
(:g 255.0)
|
|
(:b 255.0)
|
|
(:a 16.0 16.0)
|
|
(:vel-y (meters 0.1) (meters 0.4))
|
|
(:scalevel-x (meters 0.26666668) (meters 0.13333334))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r 0.0)
|
|
(:fade-g -0.36)
|
|
(:fade-b -4.24)
|
|
(:fade-a -0.13333334)
|
|
(:friction 0.92 0.02)
|
|
(:timer (seconds 3.335))
|
|
(:flags (sp-cpuinfo-flag-2))
|
|
(:func 'sparticle-motion-blur)
|
|
(:next-time (seconds 0.085))
|
|
(:next-launcher 2059)
|
|
(:conerot-x '*sp-temp*)
|
|
(:conerot-y (degrees 0) (degrees 3600))
|
|
(:rotate-y (degrees 90))
|
|
(:conerot-radius (meters 0) (meters 2))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2059
|
|
:init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r -0.55)
|
|
(:fade-g -2.95)
|
|
(:fade-b -3.3)
|
|
(:next-time (seconds 0.1) (seconds 0.03))
|
|
(:next-launcher 2060)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2060
|
|
:init-specs ((:scalevel-x (meters 0.008333334) (meters 0.008333334))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r -1.2944444)
|
|
(:fade-g -0.7111111)
|
|
(:fade-b -0.2)
|
|
(:fade-a -0.1 -0.1)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2049
|
|
:init-specs ((:texture (explosion-nebula effects))
|
|
(:birth-func 'birth-func-texture-group)
|
|
(:num 16.0 10.0)
|
|
(:y (meters -2.5))
|
|
(:scale-x (meters 6) (meters 4))
|
|
(:rot-z (degrees 0))
|
|
(:scale-y (meters 12.8) (meters 2.4))
|
|
(:r 255.0)
|
|
(:g 255.0)
|
|
(:b 255.0)
|
|
(:a 32.0 32.0)
|
|
(:vel-y (meters 0.06666667) (meters 0.2))
|
|
(:scalevel-x (meters 0.26666668) (meters 0.2))
|
|
(:rotvel-z (degrees -0.3) (degrees 0.6))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r 0.0)
|
|
(:fade-g -0.36)
|
|
(:fade-b -4.24)
|
|
(:fade-a -0.32)
|
|
(:friction 0.94)
|
|
(:timer (seconds 3.335))
|
|
(:flags (sp-cpuinfo-flag-2))
|
|
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #xc00000 #xc03300))
|
|
(:next-time (seconds 0.085))
|
|
(:next-launcher 2061)
|
|
(:conerot-x (degrees 0) (degrees 3600))
|
|
(:conerot-y (degrees 0) (degrees 3600))
|
|
(:rotate-y (degrees 90))
|
|
(:conerot-radius (meters 0) (meters 8))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2061
|
|
:init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:next-time (seconds 0.017) (seconds 0.065)) (:next-launcher 2062))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2062
|
|
:init-specs ((:scalevel-x (meters 0.016666668) (meters 0.016666668))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r -0.44)
|
|
(:fade-g -2.36)
|
|
(:fade-b -2.64)
|
|
(:next-time (seconds 0.117) (seconds 0.047))
|
|
(:next-launcher 2063)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2063
|
|
:init-specs ((:scalevel-x (meters 0.008333334) (meters 0.008333334))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r -1.2)
|
|
(:fade-g -0.7111111)
|
|
(:fade-b -0.2)
|
|
(:fade-a -0.06545454 -0.06545454)
|
|
(:next-time (seconds 0.5) (seconds 0.097))
|
|
(:next-launcher 2064)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2064
|
|
:init-specs ((:fade-r 0.0) (:fade-g 0.0) (:fade-b 0.0) (:fade-a -0.1125))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2047
|
|
:init-specs ((:texture (specs effects))
|
|
(:num 16.0 4.0)
|
|
(:x (meters 0.25))
|
|
(:y (meters -2.5))
|
|
(:scale-x (meters 4) (meters 4))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 255.0)
|
|
(:g 255.0)
|
|
(:b 255.0)
|
|
(:a 32.0 48.0)
|
|
(:vel-y (meters 0.13333334) (meters 0.8))
|
|
(:scalevel-x (meters 0.02) (meters 0.02))
|
|
(:rotvel-z (degrees -0.12) (degrees 0.24))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r 0.0)
|
|
(:fade-g -0.18)
|
|
(:fade-b -2.12)
|
|
(:accel-y (meters -0.0013333333) (meters -0.0056666667))
|
|
(:friction 0.84 0.02)
|
|
(:timer (seconds 10))
|
|
(:flags (sp-cpuinfo-flag-2))
|
|
(:next-time (seconds 0.117) (seconds 0.047))
|
|
(:next-launcher 2065)
|
|
(:conerot-x (degrees 0) (degrees 3600))
|
|
(:conerot-y (degrees 0) (degrees 3600))
|
|
(:rotate-y (degrees 90))
|
|
(:conerot-radius (meters 3) (meters 5))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2065
|
|
:init-specs ((:scalevel-x (meters 0.0016666667))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r 0.0)
|
|
(:fade-g 0.02)
|
|
(:fade-b 0.23555556)
|
|
(:next-time (seconds 0.15) (seconds 0.047))
|
|
(:next-launcher 2066)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2066
|
|
:init-specs ((:fade-r -0.5543478) (:fade-g -0.5543478) (:fade-b -0.5543478) (:fade-a -0.13333334 -0.10666667))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2045
|
|
:init-specs ((:texture (bigpuff effects))
|
|
(:num 12.0 8.0)
|
|
(:y (meters -2.5))
|
|
(:scale-x (meters 16.5) (meters 16))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 70.0 20.0)
|
|
(:g 70.0 20.0)
|
|
(:b 70.0 20.0)
|
|
(:a 0.0 40.0)
|
|
(:vel-y (meters 0.06666667) (meters 0.33333334))
|
|
(:scalevel-x (meters 0.033333335) (meters 0.086666666))
|
|
(:rotvel-z (degrees -0.12) (degrees 0.24))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r 3.3)
|
|
(:fade-g 3.12)
|
|
(:fade-b 1.18)
|
|
(:fade-a 1.76)
|
|
(:friction 0.89)
|
|
(:timer (seconds 2.367))
|
|
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
|
|
(:next-time (seconds 0.117) (seconds 0.047))
|
|
(:next-launcher 2067)
|
|
(:conerot-x (degrees 0) (degrees 3600))
|
|
(:conerot-y (degrees 0) (degrees 3600))
|
|
(:rotate-y (degrees 90))
|
|
(:conerot-radius (meters 0) (meters 16))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2067
|
|
:init-specs ((:scalevel-x (meters 0.0033333334))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r -0.53333336)
|
|
(:fade-g -1.9666667)
|
|
(:fade-b -2.2)
|
|
(:fade-a -0.41666666)
|
|
(:next-time (seconds 0.15) (seconds 0.047))
|
|
(:next-launcher 2068)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2068
|
|
:init-specs ((:scalevel-x (meters 0))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-r -0.38833332)
|
|
(:fade-g -0.21333334)
|
|
(:fade-b -0.028333334)
|
|
(:fade-a -0.38833332)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 2046
|
|
:init-specs ((:texture (flamingstick effects))
|
|
(:num 8.0)
|
|
(:y (meters -2.5))
|
|
(:scale-x (meters 16) (meters 16))
|
|
(:rot-x 4)
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y (meters 1.5) (meters 0.5))
|
|
(:r 128.0 128.0)
|
|
(:g 96.0)
|
|
(:b 64.0)
|
|
(:a 64.0 64.0)
|
|
(:scalevel-x (meters 0.4) (meters 0.4))
|
|
(:fade-g 1.6)
|
|
(:fade-b 3.2)
|
|
(:fade-a -0.9142857)
|
|
(:timer (seconds 0.3))
|
|
(:flags (sp-cpuinfo-flag-2))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup skel-drill-barons-ship drill-barons-ship drill-barons-ship-lod0-jg drill-barons-ship-idle-ja
|
|
((drill-barons-ship-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 110)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup skel-drill-barons-ship-explode drill-barons-ship drill-barons-ship-explode-lod0-jg drill-barons-ship-explode-idle-ja
|
|
((drill-barons-ship-explode-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 210)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup skel-drill-barons-ship-turret drill-barons-ship drill-barons-ship-turret-lod0-jg drill-barons-ship-turret-idle-ja
|
|
((drill-barons-ship-turret-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 10)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup skel-drill-barons-ship-turret-b drill-barons-ship drill-barons-ship-turret-b-lod0-jg drill-barons-ship-turret-b-idle-ja
|
|
((drill-barons-ship-turret-b-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 10)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup skel-drill-barons-ship-turret-c drill-barons-ship drill-barons-ship-turret-c-lod0-jg drill-barons-ship-turret-c-idle-ja
|
|
((drill-barons-ship-turret-c-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 10)
|
|
)
|
|
|
|
;; definition of type drill-barons-ship
|
|
(deftype drill-barons-ship (process-drawable)
|
|
((root collide-shape-moving :override)
|
|
(init-quat quaternion :inline)
|
|
(next-to-shoot-idx int32)
|
|
(current-y-position float)
|
|
(from-y float)
|
|
(inc-y float)
|
|
(ease-y float)
|
|
(x-offset-angle float)
|
|
(pass int32)
|
|
(end-of-pass symbol)
|
|
(rock-angle float)
|
|
(soundid uint32)
|
|
)
|
|
(:state-methods
|
|
idle
|
|
hidden
|
|
)
|
|
(:methods
|
|
(drill-barons-ship-method-22 (_type_) none)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type drill-barons-ship
|
|
(defmethod inspect ((this drill-barons-ship))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type process-drawable inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~2Tinit-quat: #<quaternion @ #x~X>~%" (-> this init-quat))
|
|
(format #t "~2Tnext-to-shoot-idx: ~D~%" (-> this next-to-shoot-idx))
|
|
(format #t "~2Tcurrent-y-position: ~f~%" (-> this current-y-position))
|
|
(format #t "~2Tfrom-y: ~f~%" (-> this from-y))
|
|
(format #t "~2Tinc-y: ~f~%" (-> this inc-y))
|
|
(format #t "~2Tease-y: ~f~%" (-> this ease-y))
|
|
(format #t "~2Tx-offset-angle: ~f~%" (-> this x-offset-angle))
|
|
(format #t "~2Tpass: ~D~%" (-> this pass))
|
|
(format #t "~2Tend-of-pass: ~A~%" (-> this end-of-pass))
|
|
(format #t "~2Trock-angle: ~f~%" (-> this rock-angle))
|
|
(format #t "~2Tsoundid: ~D~%" (-> this soundid))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type drill-barons-ship-explode
|
|
(deftype drill-barons-ship-explode (process-drawable)
|
|
()
|
|
(:state-methods
|
|
idle
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type drill-barons-ship-explode
|
|
(defmethod inspect ((this drill-barons-ship-explode))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type process-drawable inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type barons-ship-turret-info
|
|
(deftype barons-ship-turret-info (structure)
|
|
((init-y-angle float)
|
|
(twist-y-max float)
|
|
(joint-idx int32)
|
|
(mesh int32)
|
|
(ship-y-offset float)
|
|
(alive symbol)
|
|
(next-to-shoot basic)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type barons-ship-turret-info
|
|
(defmethod inspect ((this barons-ship-turret-info))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this 'barons-ship-turret-info)
|
|
(format #t "~1Tinit-y-angle: ~f~%" (-> this init-y-angle))
|
|
(format #t "~1Ttwist-y-max: ~f~%" (-> this twist-y-max))
|
|
(format #t "~1Tjoint-idx: ~D~%" (-> this joint-idx))
|
|
(format #t "~1Tmesh: ~D~%" (-> this mesh))
|
|
(format #t "~1Tship-y-offset: ~f~%" (-> this ship-y-offset))
|
|
(format #t "~1Talive: ~A~%" (-> this alive))
|
|
(format #t "~1Tnext-to-shoot: ~A~%" (-> this next-to-shoot))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type drill-barons-ship-turret
|
|
(deftype drill-barons-ship-turret (process-drawable)
|
|
((root collide-shape-moving :override)
|
|
(info barons-ship-turret-info)
|
|
(shot-timer time-frame)
|
|
(shot-counter int32)
|
|
(jmod joint-mod)
|
|
(jmod-left joint-mod)
|
|
(jmod-right joint-mod)
|
|
(anim-frame float)
|
|
(error-y-angle float)
|
|
(error-y-angle-dest float)
|
|
(hit-count int32)
|
|
(soundid sound-id)
|
|
)
|
|
(:state-methods
|
|
idle
|
|
attack
|
|
dead
|
|
going-down
|
|
)
|
|
(:methods
|
|
(drill-barons-ship-turret-method-24 (_type_) none)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type drill-barons-ship-turret
|
|
(defmethod inspect ((this drill-barons-ship-turret))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type process-drawable inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~2Tinfo: #<barons-ship-turret-info @ #x~X>~%" (-> this info))
|
|
(format #t "~2Tshot-timer: ~D~%" (-> this shot-timer))
|
|
(format #t "~2Tshot-counter: ~D~%" (-> this shot-counter))
|
|
(format #t "~2Tjmod: ~A~%" (-> this jmod))
|
|
(format #t "~2Tjmod-left: ~A~%" (-> this jmod-left))
|
|
(format #t "~2Tjmod-right: ~A~%" (-> this jmod-right))
|
|
(format #t "~2Tanim-frame: ~f~%" (-> this anim-frame))
|
|
(format #t "~2Terror-y-angle: ~f~%" (-> this error-y-angle))
|
|
(format #t "~2Terror-y-angle-dest: ~f~%" (-> this error-y-angle-dest))
|
|
(format #t "~2Thit-count: ~D~%" (-> this hit-count))
|
|
(format #t "~2Tsoundid: ~D~%" (-> this soundid))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition for symbol *ship-turrets-first-pass*, type (array int32)
|
|
(define *ship-turrets-first-pass* (new 'static 'boxed-array :type int32 4 16 5 21 6 15 7 13 14 22 17 23))
|
|
|
|
;; definition for symbol *ship-turrets-second-pass*, type (array int32)
|
|
(define *ship-turrets-second-pass* (new 'static 'boxed-array :type int32 0 20 1 12 2 11 3 8 19 9 10 18))
|
|
|
|
;; definition for symbol *barons-ship-turrets*, type (array barons-ship-turret-info)
|
|
(define *barons-ship-turrets*
|
|
(new 'static 'boxed-array :type barons-ship-turret-info
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle -16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 13
|
|
:ship-y-offset -40960.0
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle -16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 11
|
|
:ship-y-offset -41369.6
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle -16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 9
|
|
:ship-y-offset -41779.2
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle -16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 16
|
|
:ship-y-offset -42188.8
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle 16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 22
|
|
:ship-y-offset -42598.4
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle 16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 20
|
|
:ship-y-offset -43008.0
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle 16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 18
|
|
:ship-y-offset -43417.6
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle 16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 25
|
|
:ship-y-offset -43827.2
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle -16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 15
|
|
:mesh 2
|
|
:ship-y-offset 40960.0
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle -16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 14
|
|
:mesh 2
|
|
:ship-y-offset 41369.6
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle -16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 12
|
|
:mesh 2
|
|
:ship-y-offset 41779.2
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle -16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 10
|
|
:mesh 2
|
|
:ship-y-offset 42188.8
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle -16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 17
|
|
:mesh 2
|
|
:ship-y-offset 42598.4
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle 16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 24
|
|
:mesh 2
|
|
:ship-y-offset 43008.0
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle 16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 23
|
|
:mesh 2
|
|
:ship-y-offset 43417.6
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle 16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 21
|
|
:mesh 2
|
|
:ship-y-offset 43827.2
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle 16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 19
|
|
:mesh 2
|
|
:ship-y-offset 44236.8
|
|
)
|
|
(new 'static 'barons-ship-turret-info
|
|
:init-y-angle 16384.0
|
|
:twist-y-max 9102.223
|
|
:joint-idx 26
|
|
:mesh 2
|
|
:ship-y-offset 44646.4
|
|
)
|
|
(new 'static 'barons-ship-turret-info :init-y-angle -16384.0 :joint-idx 32 :mesh 1 :ship-y-offset 26624.0)
|
|
(new 'static 'barons-ship-turret-info :init-y-angle -16384.0 :joint-idx 31 :mesh 1 :ship-y-offset 27033.6)
|
|
(new 'static 'barons-ship-turret-info :init-y-angle -16384.0 :joint-idx 30 :mesh 1 :ship-y-offset 27443.2)
|
|
(new 'static 'barons-ship-turret-info :init-y-angle 16384.0 :joint-idx 29 :mesh 1 :ship-y-offset 21708.8)
|
|
(new 'static 'barons-ship-turret-info :init-y-angle 16384.0 :joint-idx 28 :mesh 1 :ship-y-offset 22118.4)
|
|
(new 'static 'barons-ship-turret-info :init-y-angle 16384.0 :joint-idx 27 :mesh 1 :ship-y-offset 22528.0)
|
|
)
|
|
)
|
|
|
|
;; definition for function drill-barons-ship-turret-init-by-other
|
|
;; INFO: Used lq/sq
|
|
;; WARN: Return type mismatch object vs none.
|
|
(defbehavior drill-barons-ship-turret-init-by-other drill-barons-ship-turret ((arg0 entity-actor))
|
|
(cond
|
|
((!= (-> arg0 data-top) 1)
|
|
(let ((s5-0 (new 'process 'collide-shape self (collide-list-enum usually-hit-by-player))))
|
|
(let ((v1-3 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
|
|
(set! (-> v1-3 prim-core collide-as) (collide-spec obstacle-for-jak))
|
|
(set! (-> v1-3 prim-core action) (collide-action solid))
|
|
(set! (-> v1-3 transform-index) 3)
|
|
(set-vector! (-> v1-3 local-sphere) 0.0 0.0 0.0 73728.0)
|
|
(set! (-> s5-0 total-prims) (the-as uint 1))
|
|
(set! (-> s5-0 root-prim) v1-3)
|
|
)
|
|
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
|
(let ((v1-6 (-> s5-0 root-prim)))
|
|
(set! (-> s5-0 backup-collide-as) (-> v1-6 prim-core collide-as))
|
|
(set! (-> s5-0 backup-collide-with) (-> v1-6 prim-core collide-with))
|
|
)
|
|
(set! (-> self root) (the-as collide-shape-moving s5-0))
|
|
)
|
|
)
|
|
(else
|
|
(let ((s5-1 (new 'process 'collide-shape self (collide-list-enum usually-hit-by-player))))
|
|
(let ((v1-10 (new 'process 'collide-shape-prim-sphere s5-1 (the-as uint 0))))
|
|
(set! (-> v1-10 prim-core collide-as) (collide-spec obstacle-for-jak))
|
|
(set! (-> v1-10 prim-core action) (collide-action solid))
|
|
(set! (-> v1-10 transform-index) 3)
|
|
(set-vector! (-> v1-10 local-sphere) 81920.0 0.0 0.0 73728.0)
|
|
(set! (-> s5-1 total-prims) (the-as uint 1))
|
|
(set! (-> s5-1 root-prim) v1-10)
|
|
)
|
|
(set! (-> s5-1 nav-radius) (* 0.75 (-> s5-1 root-prim local-sphere w)))
|
|
(let ((v1-13 (-> s5-1 root-prim)))
|
|
(set! (-> s5-1 backup-collide-as) (-> v1-13 prim-core collide-as))
|
|
(set! (-> s5-1 backup-collide-with) (-> v1-13 prim-core collide-with))
|
|
)
|
|
(set! (-> self root) (the-as collide-shape-moving s5-1))
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-16 (-> self root root-prim)))
|
|
(set! (-> self root backup-collide-as) (-> v1-16 prim-core collide-as))
|
|
(set! (-> self root backup-collide-with) (-> v1-16 prim-core collide-with))
|
|
)
|
|
(let ((v1-19 (-> self root root-prim)))
|
|
(set! (-> v1-19 prim-core collide-as) (collide-spec))
|
|
(set! (-> v1-19 prim-core collide-with) (collide-spec))
|
|
)
|
|
0
|
|
(set! (-> self root trans quad) (-> (the-as drill-barons-ship (-> self parent 0)) root trans quad))
|
|
(quaternion-copy! (-> self root quat) (-> (the-as drill-barons-ship (-> self parent 0)) root quat))
|
|
(vector-identity! (-> self root scale))
|
|
(logclear! (-> self mask) (process-mask actor-pause))
|
|
(set! (-> self info) (the-as barons-ship-turret-info arg0))
|
|
(set! (-> self info alive) #t)
|
|
(set! (-> self info next-to-shoot) #f)
|
|
(set! (-> self anim-frame) 0.0)
|
|
(set! (-> self error-y-angle) 0.0)
|
|
(set! (-> self error-y-angle-dest) 0.0)
|
|
(set! (-> self hit-count) 0)
|
|
(process-spawn part-tracker :init part-tracker-init group-barons-ship-light1 -1 #f #f self 4 :to self)
|
|
(process-spawn part-tracker :init part-tracker-init group-barons-ship-light2 -1 #f #f self 5 :to self)
|
|
(process-spawn part-tracker :init part-tracker-init group-barons-ship-light3 -1 #f #f self 6 :to self)
|
|
(process-spawn part-tracker :init part-tracker-init group-barons-ship-light4 -1 #f #f self 7 :to self)
|
|
(process-spawn part-tracker :init part-tracker-init group-barons-ship-light5 -1 #f #f self 8 :to self)
|
|
(cond
|
|
((= (-> self info mesh) 1)
|
|
(initialize-skeleton
|
|
self
|
|
(the-as
|
|
skeleton-group
|
|
(art-group-get-by-name *level* "skel-drill-barons-ship-turret-b" (the-as (pointer uint32) #f))
|
|
)
|
|
(the-as pair 0)
|
|
)
|
|
(set! (-> self jmod) #f)
|
|
(set! (-> self jmod-left) #f)
|
|
(set! (-> self jmod-right) #f)
|
|
(setup-masks (-> self draw) 3 0)
|
|
)
|
|
((= (-> self info mesh) 2)
|
|
(initialize-skeleton
|
|
self
|
|
(the-as
|
|
skeleton-group
|
|
(art-group-get-by-name *level* "skel-drill-barons-ship-turret-c" (the-as (pointer uint32) #f))
|
|
)
|
|
(the-as pair 0)
|
|
)
|
|
(set! (-> self jmod) (the-as joint-mod (new 'process 'joint-mod-add-local self 6 #f #t #f)))
|
|
(set! (-> self jmod twist-min-y) (the-as float #t))
|
|
(quaternion-axis-angle! (the-as quaternion (-> self jmod twist)) 0.0 1.0 0.0 0.0)
|
|
(set! (-> self jmod-left) #f)
|
|
(set! (-> self jmod-right) #f)
|
|
(setup-masks (-> self draw) 3 0)
|
|
)
|
|
(else
|
|
(initialize-skeleton
|
|
self
|
|
(the-as
|
|
skeleton-group
|
|
(art-group-get-by-name *level* "skel-drill-barons-ship-turret" (the-as (pointer uint32) #f))
|
|
)
|
|
(the-as pair 0)
|
|
)
|
|
(set! (-> self jmod) (the-as joint-mod (new 'process 'joint-mod-add-local self 10 #f #t #f)))
|
|
(set! (-> self jmod twist-min-y) (the-as float #t))
|
|
(set! (-> self jmod-left) (the-as joint-mod (new 'process 'joint-mod-add-local self 11 #f #t #f)))
|
|
(set! (-> self jmod-left twist-min-y) (the-as float #t))
|
|
(set! (-> self jmod-right) (the-as joint-mod (new 'process 'joint-mod-add-local self 12 #f #t #f)))
|
|
(set! (-> self jmod-right twist-min-y) (the-as float #t))
|
|
(quaternion-axis-angle! (the-as quaternion (-> self jmod twist)) 0.0 1.0 0.0 0.0)
|
|
(quaternion-axis-angle! (the-as quaternion (-> self jmod-left twist)) 0.0 0.0 1.0 0.0)
|
|
(quaternion-axis-angle! (the-as quaternion (-> self jmod-right twist)) 0.0 0.0 1.0 0.0)
|
|
(setup-masks (-> self draw) 3 0)
|
|
)
|
|
)
|
|
(go-virtual idle)
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 7 of type drill-barons-ship-turret
|
|
(defmethod relocate ((this drill-barons-ship-turret) (offset int))
|
|
(when (-> this jmod)
|
|
(if (nonzero? (-> this jmod))
|
|
(&+! (-> this jmod) offset)
|
|
)
|
|
)
|
|
(when (-> this jmod-left)
|
|
(if (nonzero? (-> this jmod-left))
|
|
(&+! (-> this jmod-left) offset)
|
|
)
|
|
)
|
|
(when (-> this jmod-right)
|
|
(if (nonzero? (-> this jmod-right))
|
|
(&+! (-> this jmod-right) offset)
|
|
)
|
|
)
|
|
(call-parent-method this offset)
|
|
)
|
|
|
|
;; definition for method 11 of type drill-barons-ship
|
|
;; WARN: Return type mismatch object vs none.
|
|
(defmethod init-from-entity! ((this drill-barons-ship) (arg0 entity-actor))
|
|
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
|
This commonly includes things such as:
|
|
- stack size
|
|
- collision information
|
|
- loading the skeleton group / bones
|
|
- sounds"
|
|
(let ((s4-0 (new 'process 'collide-shape this (collide-list-enum usually-hit-by-player))))
|
|
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 1) 0)))
|
|
(set! (-> s4-0 total-prims) (the-as uint 2))
|
|
(set! (-> s3-0 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> s3-0 prim-core collide-with) (collide-spec jak player-list))
|
|
(set! (-> s3-0 prim-core action) (collide-action solid))
|
|
(set! (-> s3-0 transform-index) 0)
|
|
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 450560.0)
|
|
(set! (-> s4-0 root-prim) s3-0)
|
|
)
|
|
(let ((v1-8 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
|
|
(set! (-> v1-8 prim-core collide-as) (collide-spec obstacle))
|
|
(set! (-> v1-8 prim-core collide-with) (collide-spec jak player-list))
|
|
(set! (-> v1-8 prim-core action) (collide-action solid))
|
|
(set! (-> v1-8 transform-index) 0)
|
|
(set-vector! (-> v1-8 local-sphere) 0.0 0.0 0.0 450560.0)
|
|
)
|
|
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
|
(let ((v1-11 (-> s4-0 root-prim)))
|
|
(set! (-> s4-0 backup-collide-as) (-> v1-11 prim-core collide-as))
|
|
(set! (-> s4-0 backup-collide-with) (-> v1-11 prim-core collide-with))
|
|
)
|
|
(set! (-> this root) (the-as collide-shape-moving s4-0))
|
|
)
|
|
(process-drawable-from-entity! this arg0)
|
|
(initialize-skeleton
|
|
this
|
|
(the-as skeleton-group (art-group-get-by-name *level* "skel-drill-barons-ship" (the-as (pointer uint32) #f)))
|
|
(the-as pair 0)
|
|
)
|
|
(logclear! (-> this mask) (process-mask actor-pause))
|
|
(logior! (-> this skel status) (joint-control-status sync-math))
|
|
(quaternion-vector-angle! (-> this root quat) *y-vector* -16384.0)
|
|
(set-vector! (-> this root trans) 737280.0 -1024000.0 -1433600.0 1.0)
|
|
(set! (-> this next-to-shoot-idx) 0)
|
|
(quaternion-copy! (-> this init-quat) (-> this root quat))
|
|
(set! (-> this current-y-position) (-> this root trans y))
|
|
(set! (-> this from-y) (-> this current-y-position))
|
|
(set! (-> this inc-y) 1228.8)
|
|
(set! (-> this ease-y) 40960.0)
|
|
(set! (-> this pass) 0)
|
|
(set! (-> this end-of-pass) #f)
|
|
(set! (-> this rock-angle) 0.0)
|
|
(let ((a0-21 (-> this skel root-channel 0)))
|
|
(set! (-> a0-21 frame-group) (the-as art-joint-anim (-> this draw art-group data 2)))
|
|
(set! (-> a0-21 frame-num) 0.0)
|
|
(joint-control-channel-group! a0-21 (the-as art-joint-anim (-> this draw art-group data 2)) num-func-identity)
|
|
)
|
|
(ja-post)
|
|
(dotimes (s5-2 (length *barons-ship-turrets*))
|
|
(process-spawn drill-barons-ship-turret (-> *barons-ship-turrets* s5-2) :to this)
|
|
)
|
|
(set! (-> *barons-ship-turrets* (-> *ship-turrets-first-pass* 3) alive) #f)
|
|
(set! (-> *barons-ship-turrets* (-> *ship-turrets-first-pass* 9) alive) #f)
|
|
(set! (-> *barons-ship-turrets* (-> *ship-turrets-first-pass* 11) alive) #f)
|
|
(set! (-> this soundid) (the-as uint (sound-play "drl-ship-steady")))
|
|
(go (method-of-object this hidden))
|
|
(none)
|
|
)
|
|
|
|
;; definition for function drill-barons-ship-explode-init-by-other
|
|
;; INFO: Used lq/sq
|
|
;; WARN: Return type mismatch object vs none.
|
|
(defbehavior drill-barons-ship-explode-init-by-other drill-barons-ship-explode ((arg0 entity-actor))
|
|
(set! (-> self root) (new 'process 'trsqv))
|
|
(logclear! (-> self mask) (process-mask actor-pause))
|
|
(process-entity-status! self (entity-perm-status no-kill) #t)
|
|
(quaternion-vector-angle! (-> self root quat) *y-vector* -16384.0)
|
|
(set! (-> self root trans quad) (-> (the-as process-drawable (-> self parent 0)) root trans quad))
|
|
(initialize-skeleton
|
|
self
|
|
(the-as
|
|
skeleton-group
|
|
(art-group-get-by-name *level* "skel-drill-barons-ship-explode" (the-as (pointer uint32) #f))
|
|
)
|
|
(the-as pair 0)
|
|
)
|
|
(ja-no-eval :group! drill-barons-ship-explode-idle-ja :num! zero)
|
|
(ja-post)
|
|
(quaternion-rotate-local-y! (-> self root quat) (-> self root quat) 32768.0)
|
|
(add-process *gui-control* self (gui-channel background) (gui-action play) "shpxplo2" -99.0 0)
|
|
(go-virtual idle)
|
|
(none)
|
|
)
|
|
|
|
;; definition of type drill-ship-shot
|
|
(deftype drill-ship-shot (guard-shot)
|
|
()
|
|
)
|
|
|
|
;; definition for method 3 of type drill-ship-shot
|
|
(defmethod inspect ((this drill-ship-shot))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type guard-shot inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition for method 37 of type drill-ship-shot
|
|
(defmethod deal-damage! ((this drill-ship-shot) (arg0 process) (arg1 event-message-block))
|
|
"Constructs an [[attack-info]] according to the projectile's `options`"
|
|
(if (not (and (-> (the-as drill-barons-ship (-> this parent 0)) next-state)
|
|
(= (-> (the-as drill-barons-ship (-> this parent 0)) next-state name) 'hidden)
|
|
)
|
|
)
|
|
((method-of-type guard-shot deal-damage!) this arg0 arg1)
|
|
#f
|
|
)
|
|
)
|
|
|
|
;; definition for function drill-ship-shot-move
|
|
;; WARN: Return type mismatch int vs none.
|
|
(defun drill-ship-shot-move ((arg0 drill-ship-shot))
|
|
(guard-shot-move arg0)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 31 of type drill-ship-shot
|
|
;; WARN: Return type mismatch int vs none.
|
|
(defmethod init-proj-settings! ((this drill-ship-shot))
|
|
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
|
(call-parent-method this)
|
|
(set! (-> this attack-mode) 'drill-ship-shot)
|
|
(set! (-> this move) guard-shot-move)
|
|
(set! (-> this max-speed) 737280.0)
|
|
(set! (-> this timeout) (seconds 4.167))
|
|
(none)
|
|
)
|
|
|
|
;; definition for symbol *drill-ship-turret-speed-event*, type turret-path-event
|
|
(define *drill-ship-turret-speed-event* (the-as turret-path-event L183))
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate idle (drill-barons-ship-explode)
|
|
:virtual #t
|
|
:code (behavior ()
|
|
(ja-no-eval :group! (ja-group) :num! (seek!) :frame-num 0.0)
|
|
(until (ja-done? 0)
|
|
(suspend)
|
|
(ja :num! (seek!))
|
|
)
|
|
)
|
|
:post ja-post
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate hidden (drill-barons-ship)
|
|
:virtual #t
|
|
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
|
(case message
|
|
(('trigger-back)
|
|
(set! (-> self pass) 1)
|
|
(dotimes (gp-0 (length *ship-turrets-first-pass*))
|
|
(set! (-> *barons-ship-turrets* (-> *ship-turrets-first-pass* gp-0) alive) #f)
|
|
)
|
|
(go-virtual idle)
|
|
)
|
|
(('trigger)
|
|
(go-virtual idle)
|
|
)
|
|
(('pass-complete?)
|
|
(when (>= (-> self pass) 2)
|
|
(task-node-close! (game-task-node drill-ship-resolution))
|
|
(set-continue! *game-info* "drillmid-ship-warp" #f)
|
|
(talker-spawn-func (-> *talker-speech* 102) *entity-pool* (target-pos 0) (the-as region #f))
|
|
)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
:enter (behavior ()
|
|
(set! (-> self from-y) (-> self current-y-position))
|
|
(set! (-> self inc-y) 3276.8)
|
|
(set! (-> self ease-y) 40960.0)
|
|
(when (> (-> self pass) 0)
|
|
(let ((a0-2 (the-as turret (process-by-name
|
|
(if (= (-> self pass) 1)
|
|
"turret-14"
|
|
"turret-15"
|
|
)
|
|
*active-pool*
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(if a0-2
|
|
(base-turret-method-39 a0-2 *drill-ship-turret-speed-event*)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
:code (behavior ()
|
|
(cond
|
|
((>= (-> self pass) 2)
|
|
(set! (-> self current-y-position) -1024000.0)
|
|
(let* ((gp-0 (get-process *default-dead-pool* drill-barons-ship-explode #x4000))
|
|
(v1-3 (when gp-0
|
|
(let ((t9-1 (method-of-type drill-barons-ship-explode activate))
|
|
(a0-1 gp-0)
|
|
(a1-1 self)
|
|
(a2-3 (symbol->string (-> drill-barons-ship-explode symbol)))
|
|
)
|
|
(t9-1 (the-as drill-barons-ship-explode a0-1) a1-1 a2-3 (the-as pointer #x70004000))
|
|
(run-now-in-process gp-0 drill-barons-ship-explode-init-by-other (the-as none a2-3))
|
|
)
|
|
(-> gp-0 ppointer)
|
|
)
|
|
)
|
|
)
|
|
(change-parent (-> v1-3 0) *entity-pool*)
|
|
)
|
|
(until (task-node-closed? (game-task-node drill-ship-resolution))
|
|
(suspend)
|
|
)
|
|
(cleanup-for-death self)
|
|
)
|
|
(else
|
|
(until #f
|
|
(ja :num-func num-func-identity :frame-num 0.0)
|
|
(suspend)
|
|
)
|
|
#f
|
|
)
|
|
)
|
|
)
|
|
:post (behavior ()
|
|
(set! (-> self current-y-position)
|
|
(seek-ease-in-out
|
|
(-> self current-y-position)
|
|
(-> self from-y)
|
|
-1024000.0
|
|
(* (-> self inc-y) (-> self clock time-adjust-ratio))
|
|
(-> self ease-y)
|
|
(-> self ease-y)
|
|
(* (/ (-> self clock time-adjust-ratio) 20) (-> self inc-y))
|
|
)
|
|
)
|
|
(set! (-> self root trans y)
|
|
(+ (-> self current-y-position) (* 4096.0 (* 2.0 (sin (+ 16384.0 (* 45.511112 (the float (current-time))))))))
|
|
)
|
|
(drill-barons-ship-method-22 self)
|
|
(transform-post)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate idle (drill-barons-ship)
|
|
:virtual #t
|
|
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
|
(case message
|
|
(('pass-complete?)
|
|
(set! (-> self end-of-pass) #t)
|
|
#f
|
|
)
|
|
)
|
|
)
|
|
:enter (behavior ()
|
|
(set-setting! 'music 'danger4 0.0 0)
|
|
(let ((v1-2 2)
|
|
(a0-2 (+ (-> self pass) 1))
|
|
)
|
|
(set! (-> self pass) a0-2)
|
|
(if (= a0-2 v1-2)
|
|
(quaternion-rotate-local-y! (-> self init-quat) (-> self init-quat) 32768.0)
|
|
)
|
|
)
|
|
(set! (-> self inc-y) 2048.0)
|
|
(set! (-> self ease-y) 40960.0)
|
|
(set! (-> self end-of-pass) #f)
|
|
)
|
|
:exit (behavior ()
|
|
(remove-setting! 'music)
|
|
)
|
|
:code (behavior ()
|
|
(until #f
|
|
(ja :num-func num-func-identity :frame-num 0.0)
|
|
(suspend)
|
|
)
|
|
#f
|
|
)
|
|
:post (behavior ()
|
|
(let ((gp-0 (if (= (-> self pass) 1)
|
|
*ship-turrets-first-pass*
|
|
*ship-turrets-second-pass*
|
|
)
|
|
)
|
|
)
|
|
(let* ((s5-0 (-> *barons-ship-turrets* (-> gp-0 (-> self next-to-shoot-idx))))
|
|
(f30-0 (if (= (-> self pass) 1)
|
|
0.0
|
|
40960.0
|
|
)
|
|
)
|
|
(f28-0 (+ f30-0 (-> s5-0 ship-y-offset)))
|
|
)
|
|
(cond
|
|
((and (not (-> s5-0 next-to-shoot)) (= (-> self current-y-position) f28-0))
|
|
(let ((s4-0 1)
|
|
(s3-0 (-> self next-to-shoot-idx))
|
|
(s5-1 (-> self next-to-shoot-idx))
|
|
)
|
|
(while (and (not (-> *barons-ship-turrets* (-> gp-0 (mod (+ s3-0 s4-0) (length gp-0))) alive))
|
|
(< s4-0 (+ (length gp-0) 1))
|
|
)
|
|
(+! s4-0 1)
|
|
)
|
|
(set! (-> self next-to-shoot-idx) (mod (+ s3-0 s4-0) (length gp-0)))
|
|
(let ((v1-35 (-> *barons-ship-turrets* (-> gp-0 (-> self next-to-shoot-idx)))))
|
|
(when (-> v1-35 alive)
|
|
(cond
|
|
((= s5-1 (-> self next-to-shoot-idx))
|
|
(set! (-> v1-35 next-to-shoot) (the-as basic #t))
|
|
)
|
|
(else
|
|
(set! (-> self from-y) (-> self current-y-position))
|
|
(let ((f0-6 (fabs (- (+ f30-0 (-> v1-35 ship-y-offset)) (-> self from-y)))))
|
|
(set! (-> self inc-y) (/ f0-6 50))
|
|
(set! (-> self ease-y) (/ f0-6 5))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(set! (-> self current-y-position)
|
|
(seek-ease-in-out
|
|
(-> self current-y-position)
|
|
(-> self from-y)
|
|
f28-0
|
|
(* (-> self inc-y) (-> self clock time-adjust-ratio))
|
|
(-> self ease-y)
|
|
(-> self ease-y)
|
|
(* (/ (-> self clock time-adjust-ratio) 20) (-> self inc-y))
|
|
)
|
|
)
|
|
(if (and (= (-> self current-y-position) f28-0) (-> s5-0 alive))
|
|
(set! (-> s5-0 next-to-shoot) (the-as basic #t))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(let ((s5-2 #t))
|
|
(dotimes (s4-2 (length gp-0))
|
|
(if (-> *barons-ship-turrets* (-> gp-0 s4-2) alive)
|
|
(set! s5-2 #f)
|
|
)
|
|
)
|
|
(if s5-2
|
|
(go-virtual hidden)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> self root trans y)
|
|
(+ (-> self current-y-position) (* 4096.0 (* 2.0 (sin (+ 16384.0 (* 45.511112 (the float (current-time))))))))
|
|
)
|
|
(drill-barons-ship-method-22 self)
|
|
(+! (-> self x-offset-angle) (* 0.7 (-> self clock time-adjust-ratio)))
|
|
(transform-post)
|
|
)
|
|
)
|
|
|
|
;; definition for method 22 of type drill-barons-ship
|
|
;; WARN: Return type mismatch int vs none.
|
|
(defmethod drill-barons-ship-method-22 ((this drill-barons-ship))
|
|
(with-pp
|
|
(quaternion-rotate-local-x!
|
|
(-> this root quat)
|
|
(-> this init-quat)
|
|
(* 182.04445 (sin (* 36.40889 (the float (current-time)))))
|
|
)
|
|
(let ((f30-2 (* 182.04445 (* 5.0 (sin (* 45.511112 (the float (current-time))))))))
|
|
(when (!= (-> this rock-angle) 0.0)
|
|
(+! f30-2 (* 182.04445 (* 20.0
|
|
(if (= (-> this pass) 1)
|
|
1.0
|
|
-1.0
|
|
)
|
|
(sin (* 182.04445 (-> this rock-angle)))
|
|
)
|
|
)
|
|
)
|
|
(set! (-> this rock-angle)
|
|
(seek-ease
|
|
(-> this rock-angle)
|
|
0.0
|
|
(* 5.0 (-> pp clock time-adjust-ratio))
|
|
90.0
|
|
(/ (-> pp clock time-adjust-ratio) 10)
|
|
)
|
|
)
|
|
)
|
|
(quaternion-rotate-local-z! (-> this root quat) (-> this root quat) f30-2)
|
|
)
|
|
(set! (-> this root trans z)
|
|
(+ (* 4096.0 (* 30.0 (cos (* 45.511112 (the float (current-time)))))) (if (= (-> this pass) 1)
|
|
-1433600.0
|
|
-1433600.0
|
|
)
|
|
)
|
|
)
|
|
(if *target*
|
|
(set! (-> this root trans x)
|
|
(+ (-> *target* control trans x) (* 4096.0 (+ (if (= (-> this pass) 1)
|
|
15.0
|
|
-35.0
|
|
)
|
|
(* 40.0 (sin (* 182.04445 (-> this x-offset-angle))))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; definition for method 24 of type drill-barons-ship-turret
|
|
;; INFO: Used lq/sq
|
|
;; WARN: Return type mismatch int vs none.
|
|
(defmethod drill-barons-ship-turret-method-24 ((this drill-barons-ship-turret))
|
|
(vector<-cspace!
|
|
(-> this root trans)
|
|
(-> (the-as drill-barons-ship (-> this parent 0)) node-list data (-> this info joint-idx))
|
|
)
|
|
(let ((a2-1 (quaternion-axis-angle! (new 'stack-no-clear 'quaternion) 0.0 1.0 0.0 (-> this info init-y-angle))))
|
|
(quaternion*! (-> this root quat) (-> (the-as drill-barons-ship (-> this parent 0)) root quat) a2-1)
|
|
)
|
|
(when (-> this jmod)
|
|
(let ((s5-1 (vector-! (new 'stack-no-clear 'vector) (target-pos 0) (-> this root trans)))
|
|
(s3-0 (quaternion->matrix (new-stack-matrix0) (-> this root quat)))
|
|
)
|
|
(vector-normalize! s5-1 1.0)
|
|
(let* ((s4-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s3-0 vector 1) 1.0))
|
|
(s3-1 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s3-0 vector 2) 1.0))
|
|
(a0-13 (vector-normalize! (vector-flatten! (new 'stack-no-clear 'vector) s5-1 s4-0) 1.0))
|
|
(f30-0 (vector-y-angle a0-13))
|
|
(f0-1 (vector-y-angle s3-1))
|
|
(f0-5 (fmax
|
|
(fmin (+ (deg-diff f0-1 f30-0) (* 182.04445 (-> this error-y-angle))) (-> this info twist-y-max))
|
|
(- (-> this info twist-y-max))
|
|
)
|
|
)
|
|
)
|
|
(quaternion-axis-angle! (the-as quaternion (-> this jmod twist)) 0.0 1.0 0.0 f0-5)
|
|
)
|
|
)
|
|
(if (-> this jmod-left)
|
|
(quaternion-axis-angle!
|
|
(the-as quaternion (-> this jmod-left twist))
|
|
0.0
|
|
0.0
|
|
1.0
|
|
(* 182.04445 (* -3.0 (the float (current-time))))
|
|
)
|
|
)
|
|
(if (-> this jmod-right)
|
|
(quaternion-axis-angle!
|
|
(the-as quaternion (-> this jmod-right twist))
|
|
0.0
|
|
0.0
|
|
1.0
|
|
(* 182.04445 (* 3.0 (the float (current-time))))
|
|
)
|
|
)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate dead (drill-barons-ship-turret)
|
|
:virtual #t
|
|
:enter (behavior ()
|
|
(let ((v1-1 (-> self root root-prim)))
|
|
(set! (-> v1-1 prim-core collide-as) (collide-spec))
|
|
(set! (-> v1-1 prim-core collide-with) (collide-spec))
|
|
)
|
|
0
|
|
(set-time! (-> self state-time))
|
|
)
|
|
:trans (behavior ()
|
|
(vector<-cspace!
|
|
(-> self root trans)
|
|
(-> (the-as drill-barons-ship (-> self parent 0)) node-list data (-> self info joint-idx))
|
|
)
|
|
(let ((a2-1 (quaternion-axis-angle! (new 'stack-no-clear 'quaternion) 0.0 1.0 0.0 (-> self info init-y-angle))))
|
|
(quaternion*! (-> self root quat) (-> (the-as drill-barons-ship (-> self parent 0)) root quat) a2-1)
|
|
)
|
|
(if (and (-> (the-as drill-barons-ship (-> self parent 0)) next-state)
|
|
(= (-> (the-as drill-barons-ship (-> self parent 0)) next-state name) 'hidden)
|
|
)
|
|
(go-virtual going-down)
|
|
)
|
|
)
|
|
:code (behavior ()
|
|
(until #f
|
|
(ja :num-func num-func-identity :frame-num 0.0)
|
|
(suspend)
|
|
)
|
|
#f
|
|
)
|
|
:post (behavior ()
|
|
(transform-post)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate going-down (drill-barons-ship-turret)
|
|
:virtual #t
|
|
:enter (behavior ()
|
|
(cond
|
|
((>= (-> (the-as drill-barons-ship (-> self parent 0)) pass) 2)
|
|
(if (zero? (-> self info mesh))
|
|
(part-tracker-spawn
|
|
:to *entity-pool*
|
|
:group group-drill-barons-ship-explosion
|
|
:mat-joint (-> self root trans)
|
|
)
|
|
)
|
|
)
|
|
((zero? (-> self info mesh))
|
|
(process-spawn part-tracker :init part-tracker-init group-turret-smoke-trail 0 #f #f self 3 :to *entity-pool*)
|
|
)
|
|
(else
|
|
(part-tracker-spawn
|
|
:to *entity-pool*
|
|
:group group-drill-barons-ship-explosion
|
|
:mat-joint (-> self root trans)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
:trans (behavior ()
|
|
(vector<-cspace!
|
|
(-> self root trans)
|
|
(-> (the-as drill-barons-ship (-> self parent 0)) node-list data (-> self info joint-idx))
|
|
)
|
|
(if (not (and (-> (the-as drill-barons-ship (-> self parent 0)) next-state)
|
|
(= (-> (the-as drill-barons-ship (-> self parent 0)) next-state name) 'hidden)
|
|
)
|
|
)
|
|
(go-virtual dead)
|
|
)
|
|
)
|
|
:code (behavior ()
|
|
(until #f
|
|
(ja :num-func num-func-identity :frame-num 0.0)
|
|
(suspend)
|
|
)
|
|
#f
|
|
)
|
|
:post (behavior ()
|
|
(transform-post)
|
|
)
|
|
)
|
|
|
|
;; definition for function calculate-ship-projectile-velocity
|
|
;; WARN: Return type mismatch int vs none.
|
|
(defun calculate-ship-projectile-velocity ((arg0 projectile-init-by-other-params) (arg1 float))
|
|
(let ((a0-2 (the-as target (as-type *target* process-focusable))))
|
|
(cond
|
|
(a0-2
|
|
(let ((a0-3 (get-trans a0-2 0)))
|
|
(set-vector!
|
|
(-> arg0 vel)
|
|
0.0
|
|
(+ (- 6144.0 (-> arg0 pos y)) (-> a0-3 y))
|
|
(vector-vector-xz-distance a0-3 (-> arg0 pos))
|
|
1.0
|
|
)
|
|
)
|
|
(vector-normalize! (-> arg0 vel) 1.0)
|
|
)
|
|
(else
|
|
(set-vector! (-> arg0 vel) 0.0 0.0 1.0 1.0)
|
|
)
|
|
)
|
|
)
|
|
(vector-rotate-y! (-> arg0 vel) (-> arg0 vel) arg1)
|
|
(vector-normalize! (-> arg0 vel) 737280.0)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate attack (drill-barons-ship-turret)
|
|
:virtual #t
|
|
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
|
(case message
|
|
(('attack)
|
|
(when (and (-> self info alive) (= (-> self anim-frame) 1.0))
|
|
(+! (-> self hit-count) 1)
|
|
(cond
|
|
((!= (-> self hit-count) 20)
|
|
(sound-play "ship-gun-hit")
|
|
)
|
|
(else
|
|
(set! (-> self info alive) #f)
|
|
(set! (-> self info next-to-shoot) #f)
|
|
(let ((gp-1 (new 'stack-no-clear 'vector)))
|
|
(set! (-> gp-1 quad) (-> self root trans quad))
|
|
(+! (-> gp-1 z) 81920.0)
|
|
(part-tracker-spawn :to *entity-pool* :group group-drill-barons-ship-explosion :mat-joint gp-1)
|
|
)
|
|
(sound-play "shp-turret-xplo")
|
|
(cond
|
|
((= (-> self info mesh) 1)
|
|
(setup-masks (-> self draw) 0 1)
|
|
(process-spawn part-tracker :init part-tracker-init group-turret-smoke-trail-side 0 #f #f self 3 :to self)
|
|
)
|
|
((= (-> self info mesh) 2)
|
|
(setup-masks (-> self draw) 0 1)
|
|
(process-spawn part-tracker :init part-tracker-init group-turret-smoke-trail-down 0 #f #f self 3 :to self)
|
|
)
|
|
(else
|
|
(setup-masks (-> self draw) 0 1)
|
|
(process-spawn part-tracker :init part-tracker-init group-turret-smoke-trail 0 #f #f self 3 :to self)
|
|
)
|
|
)
|
|
(sound-play "ship-veer")
|
|
(set! (-> (the-as drill-barons-ship (-> self parent 0)) rock-angle) 180.0)
|
|
(go-virtual dead)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
:enter (behavior ()
|
|
(set-time! (-> self shot-timer))
|
|
(set! (-> self shot-counter) 0)
|
|
(set! (-> self error-y-angle) (if (< 25.0 (rand-vu-float-range 0.0 50.0))
|
|
-15.0
|
|
15.0
|
|
)
|
|
)
|
|
(set! (-> self error-y-angle-dest) (- (-> self error-y-angle)))
|
|
(let ((v1-5 (-> self root root-prim)))
|
|
(set! (-> v1-5 prim-core collide-as) (-> self root backup-collide-as))
|
|
(set! (-> v1-5 prim-core collide-with) (-> self root backup-collide-with))
|
|
)
|
|
(cond
|
|
((= (-> self info mesh) 1)
|
|
(process-spawn
|
|
part-tracker
|
|
:init part-tracker-init
|
|
group-turret-warning-side
|
|
0
|
|
#f
|
|
#f
|
|
self
|
|
3
|
|
:to *entity-pool*
|
|
)
|
|
)
|
|
((= (-> self info mesh) 2)
|
|
(process-spawn
|
|
part-tracker
|
|
:init part-tracker-init
|
|
group-turret-warning-down
|
|
0
|
|
#f
|
|
#f
|
|
self
|
|
3
|
|
:to *entity-pool*
|
|
)
|
|
)
|
|
(else
|
|
(process-spawn part-tracker :init part-tracker-init group-turret-warning 0 #f #f self 3 :to *entity-pool*)
|
|
)
|
|
)
|
|
(if (zero? (-> self info mesh))
|
|
(set! (-> self soundid) (sound-play "ship-gun1-chain"))
|
|
)
|
|
)
|
|
:exit (behavior ()
|
|
(if (zero? (-> self info mesh))
|
|
(sound-stop (-> self soundid))
|
|
)
|
|
(let ((v1-5 (-> self root root-prim)))
|
|
(set! (-> v1-5 prim-core collide-as) (collide-spec))
|
|
(set! (-> v1-5 prim-core collide-with) (collide-spec))
|
|
)
|
|
0
|
|
(cond
|
|
((= (-> self info mesh) 1)
|
|
(sound-play "ship-gun2-down")
|
|
)
|
|
((= (-> self info mesh) 2)
|
|
(sound-play "ship-gun3-close")
|
|
)
|
|
(else
|
|
(sound-play "ship-gun1-down")
|
|
)
|
|
)
|
|
)
|
|
:code (behavior ()
|
|
(cond
|
|
((= (-> self info mesh) 1)
|
|
(sound-play "ship-gun2-up")
|
|
)
|
|
((= (-> self info mesh) 2)
|
|
(sound-play "ship-gun3-open")
|
|
)
|
|
(else
|
|
(sound-play "ship-gun1-up")
|
|
)
|
|
)
|
|
(until #f
|
|
(seek! (-> self anim-frame) 1.0 (/ (-> self clock time-adjust-ratio) 100))
|
|
(let ((v1-12 (-> self skel root-channel 0)))
|
|
(set! (-> v1-12 num-func) num-func-identity)
|
|
(let ((f0-4 (-> self anim-frame))
|
|
(a0-13 (cond
|
|
((= (-> self info mesh) 1)
|
|
3.0
|
|
)
|
|
((= (-> self info mesh) 2)
|
|
10.0
|
|
)
|
|
(else
|
|
11.0
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> v1-12 frame-num) (* f0-4 a0-13))
|
|
)
|
|
)
|
|
(suspend)
|
|
)
|
|
#f
|
|
)
|
|
:post (behavior ()
|
|
(drill-barons-ship-turret-method-24 self)
|
|
(if (and (-> (the-as drill-barons-ship (-> self parent 0)) next-state)
|
|
(= (-> (the-as drill-barons-ship (-> self parent 0)) next-state name) 'hidden)
|
|
)
|
|
(go-virtual idle)
|
|
)
|
|
(when (and (= (-> self anim-frame) 1.0) (time-elapsed? (-> self shot-timer) (seconds 0.2)))
|
|
(let ((gp-0 (new 'stack-no-clear 'projectile-init-by-other-params)))
|
|
(cond
|
|
((-> self jmod)
|
|
(let* ((a1-1 (quaternion-copy! (new 'stack-no-clear 'quaternion) (the-as quaternion (-> self jmod twist))))
|
|
(v1-23 (quaternion->matrix (new-stack-matrix0) a1-1))
|
|
(f30-0 (vector-y-angle (-> v1-23 vector 2)))
|
|
)
|
|
(set! (-> gp-0 ent) #f)
|
|
(set! (-> gp-0 charge) 1.0)
|
|
(set! (-> gp-0 options) (projectile-options))
|
|
(set! (-> gp-0 notify-handle) (the-as handle #f))
|
|
(set! (-> gp-0 owner-handle) (the-as handle #f))
|
|
(set! (-> gp-0 ignore-handle) (process->handle self))
|
|
(let* ((v1-28 *game-info*)
|
|
(a0-11 (+ (-> v1-28 attack-id) 1))
|
|
)
|
|
(set! (-> v1-28 attack-id) a0-11)
|
|
(set! (-> gp-0 attack-id) a0-11)
|
|
)
|
|
(set! (-> gp-0 timeout) (seconds 4))
|
|
(cond
|
|
((zero? (-> self info mesh))
|
|
(cond
|
|
((not (logtest? (-> self shot-counter) 1))
|
|
(vector<-cspace! (-> gp-0 pos) (joint-node drill-barons-ship-turret-lod0-jg Lgun))
|
|
(calculate-ship-projectile-velocity gp-0 f30-0)
|
|
(spawn-projectile drill-ship-shot gp-0 self *default-dead-pool*)
|
|
)
|
|
(else
|
|
(vector<-cspace! (-> gp-0 pos) (joint-node drill-barons-ship-turret-lod0-jg Rgun))
|
|
(calculate-ship-projectile-velocity gp-0 f30-0)
|
|
(spawn-projectile drill-ship-shot gp-0 self *default-dead-pool*)
|
|
)
|
|
)
|
|
)
|
|
((not (logtest? (-> self shot-counter) 1))
|
|
(vector<-cspace! (-> gp-0 pos) (joint-node drill-barons-ship-turret-lod0-jg shaft_d))
|
|
(calculate-ship-projectile-velocity gp-0 f30-0)
|
|
(spawn-projectile drill-ship-shot gp-0 self *default-dead-pool*)
|
|
)
|
|
(else
|
|
(vector<-cspace! (-> gp-0 pos) (joint-node drill-barons-ship-turret-lod0-jg gun_left))
|
|
(calculate-ship-projectile-velocity gp-0 f30-0)
|
|
(spawn-projectile drill-ship-shot gp-0 self *default-dead-pool*)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(let ((v1-45 (quaternion->matrix (new-stack-matrix0) (-> self root quat)))
|
|
(s5-0 (new 'stack-no-clear 'vector))
|
|
)
|
|
(set! (-> s5-0 quad) (-> v1-45 vector 2 quad))
|
|
(vector-normalize! s5-0 1.0)
|
|
(vector-normalize-copy! (-> gp-0 vel) s5-0 737280.0)
|
|
)
|
|
(set! (-> gp-0 ent) #f)
|
|
(set! (-> gp-0 charge) 1.0)
|
|
(set! (-> gp-0 options) (projectile-options))
|
|
(set! (-> gp-0 notify-handle) (the-as handle #f))
|
|
(set! (-> gp-0 owner-handle) (the-as handle #f))
|
|
(set! (-> gp-0 ignore-handle) (process->handle self))
|
|
(let* ((v1-52 *game-info*)
|
|
(a0-32 (+ (-> v1-52 attack-id) 1))
|
|
)
|
|
(set! (-> v1-52 attack-id) a0-32)
|
|
(set! (-> gp-0 attack-id) a0-32)
|
|
)
|
|
(set! (-> gp-0 timeout) (seconds 4))
|
|
(cond
|
|
((not (logtest? (-> self shot-counter) 1))
|
|
(vector<-cspace! (-> gp-0 pos) (joint-node drill-barons-ship-turret-lod0-jg shaft_a))
|
|
(calculate-ship-projectile-velocity gp-0 0.0)
|
|
(spawn-projectile drill-ship-shot gp-0 self *default-dead-pool*)
|
|
)
|
|
(else
|
|
(vector<-cspace! (-> gp-0 pos) (joint-node drill-barons-ship-turret-lod0-jg R_hatch))
|
|
(calculate-ship-projectile-velocity gp-0 0.0)
|
|
(spawn-projectile drill-ship-shot gp-0 self *default-dead-pool*)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(sound-play "ship-gun1-fire")
|
|
(+! (-> self shot-counter) 1)
|
|
(set-time! (-> self shot-timer))
|
|
(seek! (-> self error-y-angle) (-> self error-y-angle-dest) (-> self clock time-adjust-ratio))
|
|
(if (= (-> self error-y-angle) (-> self error-y-angle-dest))
|
|
(set! (-> self info next-to-shoot) #f)
|
|
)
|
|
)
|
|
(if (= (-> self error-y-angle) (-> self error-y-angle-dest))
|
|
(go-virtual idle)
|
|
)
|
|
(transform-post)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate idle (drill-barons-ship-turret)
|
|
:virtual #t
|
|
:enter (behavior ()
|
|
(set! (-> self hit-count) 0)
|
|
0
|
|
)
|
|
:code (behavior ()
|
|
(until #f
|
|
(seek! (-> self anim-frame) 0.0 (/ (-> self clock time-adjust-ratio) 100))
|
|
(let ((v1-4 (-> self skel root-channel 0)))
|
|
(set! (-> v1-4 num-func) num-func-identity)
|
|
(let ((f0-4 (-> self anim-frame))
|
|
(a0-3 (cond
|
|
((= (-> self info mesh) 1)
|
|
3.0
|
|
)
|
|
((= (-> self info mesh) 2)
|
|
10.0
|
|
)
|
|
(else
|
|
11.0
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> v1-4 frame-num) (* f0-4 a0-3))
|
|
)
|
|
)
|
|
(suspend)
|
|
)
|
|
#f
|
|
)
|
|
:post (behavior ()
|
|
(cond
|
|
((-> self info alive)
|
|
(drill-barons-ship-turret-method-24 self)
|
|
(if (-> self info next-to-shoot)
|
|
(go-virtual attack)
|
|
)
|
|
)
|
|
(else
|
|
(go-virtual dead)
|
|
)
|
|
)
|
|
(transform-post)
|
|
)
|
|
)
|