Files
jak-project/test/decompiler/reference/jak2/levels/drill/drill-baron_REF.gc
T

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)
)
)