mirror of
https://github.com/open-goal/jak-project
synced 2026-08-07 02:06:59 -04:00
1082 lines
36 KiB
Common Lisp
Vendored
Generated
1082 lines
36 KiB
Common Lisp
Vendored
Generated
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; definition of type race-ring
|
|
(deftype race-ring (process-drawable)
|
|
((rot-y float)
|
|
(face-vec vector :inline)
|
|
(part-track handle)
|
|
(keep-part-track-alive symbol)
|
|
(timeout time-frame)
|
|
(alt-actor entity-actor)
|
|
(alt-task uint8)
|
|
(cyl cylinder-flat :inline)
|
|
(old-hips vector :inline)
|
|
)
|
|
(:states
|
|
race-ring-active
|
|
race-ring-idle
|
|
race-ring-wait
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type race-ring
|
|
(defmethod inspect ((this race-ring))
|
|
(let ((t9-0 (method-of-type process-drawable inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~T~Trot-y: ~f~%" (-> this rot-y))
|
|
(format #t "~T~Tface-vec: #<vector @ #x~X>~%" (-> this face-vec))
|
|
(format #t "~T~Tpart-track: ~D~%" (-> this part-track))
|
|
(format #t "~T~Tkeep-part-track-alive: ~A~%" (-> this keep-part-track-alive))
|
|
(format #t "~T~Ttimeout: ~D~%" (-> this timeout))
|
|
(format #t "~T~Talt-actor: ~A~%" (-> this alt-actor))
|
|
(format #t "~T~Talt-task: ~D~%" (-> this alt-task))
|
|
(format #t "~T~Tcyl: #<cylinder-flat @ #x~X>~%" (-> this cyl))
|
|
(format #t "~T~Told-hips: #<vector @ #x~X>~%" (-> this old-hips))
|
|
this
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-rolling-ring
|
|
:id 457
|
|
:linger-duration (seconds 0)
|
|
:bounds (static-bspherem 0 0 0 8)
|
|
:parts ((sp-item 1773 :fade-after (meters 100) :falloff-to (meters 100))
|
|
(sp-item 1774 :fade-after (meters 80))
|
|
(sp-item 1775 :flags (is-3d))
|
|
(sp-item 1776 :flags (is-3d))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1773
|
|
:init-specs ((:texture (starflash effects))
|
|
(:num 2.0 2.0)
|
|
(:scale-x (meters 1) (meters 1))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 64.0 1 64.0)
|
|
(:g 0.0)
|
|
(:b 64.0 1 64.0)
|
|
(:a 64.0)
|
|
(:rotvel-z (degrees -0.2) (degrees 0.4))
|
|
(:fade-a -1.4222221)
|
|
(:timer (seconds 0.14))
|
|
(:flags (bit2 bit3))
|
|
(:conerot-x (degrees 0) (degrees 360))
|
|
(:conerot-radius (meters 4.5))
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1774
|
|
:init-specs ((:texture (starflash effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 1) (meters 4))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 64.0 1 64.0)
|
|
(:g 0.0)
|
|
(:b 64.0 1 64.0)
|
|
(:a 64.0)
|
|
(:rotvel-z (degrees -0.2) (degrees 0.4))
|
|
(:fade-a -1.4222221)
|
|
(:timer (seconds 0.14))
|
|
(:flags (bit2 bit3))
|
|
(:conerot-x (degrees 0) (degrees 360))
|
|
(:conerot-radius (meters 4.5))
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1775
|
|
:init-specs ((:texture (water-ring effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 10))
|
|
(:rot-x (degrees 0) (degrees 360))
|
|
(:rot-y (degrees -1) (degrees 2))
|
|
(:rot-z (degrees 90))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0 1 127.0)
|
|
(:g 0.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 96.0 32.0)
|
|
(:fade-a -8.533334)
|
|
(:timer (seconds 0.035))
|
|
(:flags (bit2 bit3))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1776
|
|
:init-specs ((:texture (middot effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 12))
|
|
(:rot-x (degrees 0) (degrees 360))
|
|
(:rot-y (degrees 0))
|
|
(:rot-z (degrees 90))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0 1 127.0)
|
|
(:g 0.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 32.0 32.0)
|
|
(:timer (seconds 0.017))
|
|
(:flags (bit2 bit3))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-rolling-spawn-ring
|
|
:id 458
|
|
:duration (seconds 0.017)
|
|
:linger-duration (seconds 0.47)
|
|
:bounds (static-bspherem 0 0 0 8)
|
|
:parts ((sp-item 1777 :fade-after (meters 100) :falloff-to (meters 100))
|
|
(sp-item 1778 :flags (is-3d))
|
|
(sp-item 1779 :flags (is-3d))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1777
|
|
:init-specs ((:texture (starflash effects))
|
|
(:num 32.0)
|
|
(:scale-x (meters 1) (meters 3))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 64.0 1 64.0)
|
|
(:g 0.0)
|
|
(:b 64.0 1 64.0)
|
|
(:a 0.0 63 1.0)
|
|
(:vel-y (meters 0.03))
|
|
(:rotvel-z (degrees -0.2) (degrees 0.4))
|
|
(:timer (seconds 0.5))
|
|
(:flags (bit3))
|
|
(:next-time (seconds 0.067) (seconds 0.065))
|
|
(:next-launcher 1780)
|
|
(:conerot-x (degrees 0) (degrees 360))
|
|
(:conerot-radius (meters 0))
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1780
|
|
:init-specs ((:r 64.0 1 64.0)
|
|
(:g 0.0)
|
|
(:b 64.0 1 64.0)
|
|
(:a 0.0 63 1.0)
|
|
(:next-time (seconds 0.067) (seconds 0.065))
|
|
(:next-launcher 1780)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1778
|
|
:init-specs ((:texture (water-ring effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 0))
|
|
(:rot-x (degrees 0) (degrees 360))
|
|
(:rot-y (degrees -1) (degrees 2))
|
|
(:rot-z (degrees 90))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0 1 127.0)
|
|
(:g 0.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 96.0 32.0)
|
|
(:scalevel-x (meters 0.06666667))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:timer (seconds 0.5))
|
|
(:flags (bit2 bit3 left-multiply-quat))
|
|
(:next-time (seconds 0.017))
|
|
(:next-launcher 1781)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1781
|
|
:init-specs ((:r 128.0 1 127.0)
|
|
(:g 0.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 32.0 32.0)
|
|
(:next-time (seconds 0.017))
|
|
(:next-launcher 1781)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1779
|
|
:init-specs ((:texture (middot effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 0))
|
|
(:rot-x (degrees 0) (degrees 360))
|
|
(:rot-y (degrees 0))
|
|
(:rot-z (degrees 90))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0 1 127.0)
|
|
(:g 0.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 32.0 32.0)
|
|
(:scalevel-x (meters 0.08))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:timer (seconds 0.5))
|
|
(:flags (bit2 bit3 left-multiply-quat))
|
|
(:next-time (seconds 0.017))
|
|
(:next-launcher 1782)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1782
|
|
:init-specs ((:r 128.0 1 127.0)
|
|
(:g 0.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 32.0 32.0)
|
|
(:next-time (seconds 0.017))
|
|
(:next-launcher 1782)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-rolling-explode-ring
|
|
:id 459
|
|
:duration (seconds 0.017)
|
|
:linger-duration (seconds 0.5)
|
|
:bounds (static-bspherem 0 0 0 8)
|
|
:parts ((sp-item 1783 :fade-after (meters 100) :falloff-to (meters 100)) (sp-item 1784 :flags (is-3d)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1783
|
|
:init-specs ((:texture (starflash effects))
|
|
(:num 64.0)
|
|
(:scale-x (meters 1) (meters 1))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 64.0 1 64.0)
|
|
(:g 0.0)
|
|
(:b 64.0 1 64.0)
|
|
(:a 32.0 96.0)
|
|
(:vel-y (meters 0.1) (meters 0.033333335))
|
|
(:rotvel-z (degrees -0.2) (degrees 0.4))
|
|
(:fade-a -0.85333335)
|
|
(:friction 0.9)
|
|
(:timer (seconds 0.5))
|
|
(:flags (bit2 bit3))
|
|
(:conerot-x (degrees 0) (degrees 360))
|
|
(:conerot-radius (meters 4.5))
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1784
|
|
:init-specs ((:texture (water-ring effects))
|
|
(:num 2.0)
|
|
(:scale-x (meters 10))
|
|
(:rot-x (degrees 0) (degrees 360))
|
|
(:rot-y (degrees -1) (degrees 2))
|
|
(:rot-z (degrees 90))
|
|
(:scale-y :copy scale-x)
|
|
(:r 128.0 1 127.0)
|
|
(:g 0.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 128.0)
|
|
(:scalevel-x (meters 0.06666667))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-a -0.85333335)
|
|
(:timer (seconds 0.5))
|
|
(:flags (bit2 bit3))
|
|
)
|
|
)
|
|
|
|
;; definition for function race-ring-set-particle-rotation-callback
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun race-ring-set-particle-rotation-callback ((arg0 part-tracker))
|
|
(let ((f0-0 (-> (the-as (pointer race-ring) (-> arg0 userdata)) 0 rot-y)))
|
|
(set! (-> *part-id-table* 1773 init-specs 15 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1774 init-specs 15 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1775 init-specs 4 initial-valuef) (+ -182.04445 f0-0))
|
|
(set! (-> *part-id-table* 1776 init-specs 4 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1777 init-specs 17 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1778 init-specs 4 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1779 init-specs 4 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1783 init-specs 17 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1784 init-specs 4 initial-valuef) f0-0)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-rolling-ring-blue
|
|
:id 460
|
|
:linger-duration (seconds 0)
|
|
:bounds (static-bspherem 0 0 0 8)
|
|
:parts ((sp-item 1785 :fade-after (meters 100) :falloff-to (meters 100))
|
|
(sp-item 1786 :fade-after (meters 80))
|
|
(sp-item 1787 :flags (is-3d))
|
|
(sp-item 1788 :flags (is-3d))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1785
|
|
:init-specs ((:texture (starflash effects))
|
|
(:num 2.0 2.0)
|
|
(:scale-x (meters 1) (meters 1))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0)
|
|
(:g 64.0 1 64.0)
|
|
(:b 64.0 1 64.0)
|
|
(:a 64.0)
|
|
(:rotvel-z (degrees -0.2) (degrees 0.4))
|
|
(:fade-a -1.4222221)
|
|
(:timer (seconds 0.14))
|
|
(:flags (bit2 bit3))
|
|
(:conerot-x (degrees 0) (degrees 360))
|
|
(:conerot-radius (meters 4.5))
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1786
|
|
:init-specs ((:texture (starflash effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 1) (meters 4))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0)
|
|
(:g 64.0 1 64.0)
|
|
(:b 64.0 1 64.0)
|
|
(:a 64.0)
|
|
(:rotvel-z (degrees -0.2) (degrees 0.4))
|
|
(:fade-a -1.4222221)
|
|
(:timer (seconds 0.14))
|
|
(:flags (bit2 bit3))
|
|
(:conerot-x (degrees 0) (degrees 360))
|
|
(:conerot-radius (meters 4.5))
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1787
|
|
:init-specs ((:texture (water-ring effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 10))
|
|
(:rot-x (degrees 0) (degrees 360))
|
|
(:rot-y (degrees -1) (degrees 2))
|
|
(:rot-z (degrees 90))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0)
|
|
(:g 128.0 1 127.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 96.0 32.0)
|
|
(:fade-a -8.533334)
|
|
(:timer (seconds 0.035))
|
|
(:flags (bit2 bit3))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1788
|
|
:init-specs ((:texture (middot effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 12))
|
|
(:rot-x (degrees 0) (degrees 360))
|
|
(:rot-y (degrees 0))
|
|
(:rot-z (degrees 90))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0)
|
|
(:g 128.0 1 127.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 32.0 32.0)
|
|
(:timer (seconds 0.017))
|
|
(:flags (bit2 bit3))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-rolling-spawn-ring-blue
|
|
:id 461
|
|
:duration (seconds 0.017)
|
|
:linger-duration (seconds 0.47)
|
|
:bounds (static-bspherem 0 0 0 8)
|
|
:parts ((sp-item 1789 :fade-after (meters 100) :falloff-to (meters 100))
|
|
(sp-item 1790 :flags (is-3d))
|
|
(sp-item 1791 :flags (is-3d))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1789
|
|
:init-specs ((:texture (starflash effects))
|
|
(:num 32.0)
|
|
(:scale-x (meters 1) (meters 3))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0)
|
|
(:g 64.0 1 64.0)
|
|
(:b 64.0 1 64.0)
|
|
(:a 0.0 63 1.0)
|
|
(:vel-y (meters 0.03))
|
|
(:rotvel-z (degrees -0.2) (degrees 0.4))
|
|
(:timer (seconds 0.5))
|
|
(:flags (bit3))
|
|
(:next-time (seconds 0.067) (seconds 0.065))
|
|
(:next-launcher 1792)
|
|
(:conerot-x (degrees 0) (degrees 360))
|
|
(:conerot-radius (meters 0))
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1792
|
|
:init-specs ((:r 0.0)
|
|
(:g 64.0 1 64.0)
|
|
(:b 64.0 1 64.0)
|
|
(:a 0.0 63 1.0)
|
|
(:next-time (seconds 0.067) (seconds 0.065))
|
|
(:next-launcher 1792)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1790
|
|
:init-specs ((:texture (water-ring effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 0))
|
|
(:rot-x (degrees 0) (degrees 360))
|
|
(:rot-y (degrees -1) (degrees 2))
|
|
(:rot-z (degrees 90))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0)
|
|
(:g 128.0 1 127.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 96.0 32.0)
|
|
(:scalevel-x (meters 0.06666667))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:timer (seconds 0.5))
|
|
(:flags (bit2 bit3 left-multiply-quat))
|
|
(:next-time (seconds 0.017))
|
|
(:next-launcher 1793)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1793
|
|
:init-specs ((:r 0.0)
|
|
(:g 128.0 1 127.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 32.0 32.0)
|
|
(:next-time (seconds 0.017))
|
|
(:next-launcher 1793)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1791
|
|
:init-specs ((:texture (middot effects))
|
|
(:num 1.0)
|
|
(:scale-x (meters 0))
|
|
(:rot-x (degrees 0) (degrees 360))
|
|
(:rot-y (degrees 0))
|
|
(:rot-z (degrees 90))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0)
|
|
(:g 128.0 1 127.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 32.0 32.0)
|
|
(:scalevel-x (meters 0.08))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:timer (seconds 0.5))
|
|
(:flags (bit2 bit3 left-multiply-quat))
|
|
(:next-time (seconds 0.017))
|
|
(:next-launcher 1794)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1794
|
|
:init-specs ((:r 0.0)
|
|
(:g 128.0 1 127.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 32.0 32.0)
|
|
(:next-time (seconds 0.017))
|
|
(:next-launcher 1794)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpartgroup group-rolling-explode-ring-blue
|
|
:id 462
|
|
:duration (seconds 0.017)
|
|
:linger-duration (seconds 0.5)
|
|
:bounds (static-bspherem 0 0 0 8)
|
|
:parts ((sp-item 1795 :fade-after (meters 100) :falloff-to (meters 100)) (sp-item 1796 :flags (is-3d)))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1795
|
|
:init-specs ((:texture (starflash effects))
|
|
(:num 64.0)
|
|
(:scale-x (meters 1) (meters 1))
|
|
(:rot-z (degrees 0) (degrees 360))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0)
|
|
(:g 64.0 1 64.0)
|
|
(:b 64.0 1 64.0)
|
|
(:a 32.0 96.0)
|
|
(:vel-y (meters 0.1) (meters 0.033333335))
|
|
(:rotvel-z (degrees -0.2) (degrees 0.4))
|
|
(:fade-a -0.85333335)
|
|
(:friction 0.9)
|
|
(:timer (seconds 0.5))
|
|
(:flags (bit2 bit3))
|
|
(:conerot-x (degrees 0) (degrees 360))
|
|
(:conerot-radius (meters 4.5))
|
|
(:rotate-y (degrees 0))
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defpart 1796
|
|
:init-specs ((:texture (water-ring effects))
|
|
(:num 2.0)
|
|
(:scale-x (meters 10))
|
|
(:rot-x (degrees 0) (degrees 360))
|
|
(:rot-y (degrees -1) (degrees 2))
|
|
(:rot-z (degrees 90))
|
|
(:scale-y :copy scale-x)
|
|
(:r 0.0)
|
|
(:g 128.0 1 127.0)
|
|
(:b 128.0 1 127.0)
|
|
(:a 128.0)
|
|
(:scalevel-x (meters 0.06666667))
|
|
(:scalevel-y :copy scalevel-x)
|
|
(:fade-a -0.85333335)
|
|
(:timer (seconds 0.5))
|
|
(:flags (bit2 bit3))
|
|
)
|
|
)
|
|
|
|
;; definition for function race-ring-blue-set-particle-rotation-callback
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun race-ring-blue-set-particle-rotation-callback ((arg0 part-tracker))
|
|
(let ((f0-0 (-> (the-as (pointer race-ring) (-> arg0 userdata)) 0 rot-y)))
|
|
(set! (-> *part-id-table* 1785 init-specs 15 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1786 init-specs 15 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1787 init-specs 4 initial-valuef) (+ -182.04445 f0-0))
|
|
(set! (-> *part-id-table* 1788 init-specs 4 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1789 init-specs 17 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1790 init-specs 4 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1791 init-specs 4 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1795 init-specs 17 initial-valuef) f0-0)
|
|
(set! (-> *part-id-table* 1796 init-specs 4 initial-valuef) f0-0)
|
|
)
|
|
0
|
|
(none)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defskelgroup *race-ring-sg* race-ring race-ring-lod0-jg race-ring-race-ring-idle-ja
|
|
((race-ring-lod0-mg (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 4)
|
|
)
|
|
|
|
;; definition for function first-ring?
|
|
(defun first-ring? ((arg0 race-ring))
|
|
(not (-> arg0 alt-actor))
|
|
)
|
|
|
|
;; definition for function last-ring?
|
|
(defun last-ring? ((arg0 race-ring))
|
|
(not (-> arg0 link next))
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate race-ring-active (race-ring)
|
|
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
|
(local-vars (v0-0 symbol))
|
|
(case message
|
|
(('notify)
|
|
(when (and (= (-> block param 0) 'die) (= proc (-> self part-track process 0)))
|
|
(cond
|
|
((= (-> self entity extra perm task) (game-task rolling-ring-chase-2))
|
|
(set! (-> self part-track) (ppointer->handle (process-spawn
|
|
part-tracker
|
|
:init part-tracker-init
|
|
group-rolling-ring-blue
|
|
-1
|
|
race-ring-blue-set-particle-rotation-callback
|
|
(-> self ppointer)
|
|
#f
|
|
(-> self root trans)
|
|
:to self
|
|
)
|
|
)
|
|
)
|
|
(set! v0-0 #t)
|
|
(set! (-> self keep-part-track-alive) v0-0)
|
|
)
|
|
(else
|
|
(set! (-> self part-track) (ppointer->handle (process-spawn
|
|
part-tracker
|
|
:init part-tracker-init
|
|
group-rolling-ring
|
|
-1
|
|
race-ring-set-particle-rotation-callback
|
|
(-> self ppointer)
|
|
#f
|
|
(-> self root trans)
|
|
:to self
|
|
)
|
|
)
|
|
)
|
|
(set! v0-0 #t)
|
|
(set! (-> self keep-part-track-alive) v0-0)
|
|
)
|
|
)
|
|
v0-0
|
|
)
|
|
)
|
|
)
|
|
)
|
|
:enter (behavior ()
|
|
(cond
|
|
((first-ring? self)
|
|
(logior! (-> self mask) (process-mask actor-pause))
|
|
(process-entity-status! self (entity-perm-status bit-3) #f)
|
|
)
|
|
(else
|
|
(logclear! (-> self mask) (process-mask actor-pause))
|
|
(process-entity-status! self (entity-perm-status bit-3) #t)
|
|
)
|
|
)
|
|
(set! (-> self keep-part-track-alive) #f)
|
|
(if (= (-> self entity extra perm task) (game-task rolling-ring-chase-2))
|
|
(set! (-> self part-track) (ppointer->handle (process-spawn
|
|
part-tracker
|
|
:init part-tracker-init
|
|
group-rolling-spawn-ring-blue
|
|
-1
|
|
race-ring-blue-set-particle-rotation-callback
|
|
(-> self ppointer)
|
|
#f
|
|
(-> self root trans)
|
|
:to self
|
|
)
|
|
)
|
|
)
|
|
(set! (-> self part-track) (ppointer->handle (process-spawn
|
|
part-tracker
|
|
:init part-tracker-init
|
|
group-rolling-spawn-ring
|
|
-1
|
|
race-ring-set-particle-rotation-callback
|
|
(-> self ppointer)
|
|
#f
|
|
(-> self root trans)
|
|
:to self
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> self old-hips quad) (-> (target-pos 26) quad))
|
|
(+! (-> self old-hips x) 1.0)
|
|
(set! (-> self state-time) (-> *display* game-frame-counter))
|
|
)
|
|
:exit (behavior ()
|
|
(sound-play "close-racering")
|
|
(let ((a0-3 (handle->process (-> self part-track))))
|
|
(if a0-3
|
|
(deactivate a0-3)
|
|
)
|
|
)
|
|
(if (= (-> self entity extra perm task) (game-task rolling-ring-chase-2))
|
|
(set! (-> self part-track) (ppointer->handle (process-spawn
|
|
part-tracker
|
|
:init part-tracker-init
|
|
group-rolling-explode-ring-blue
|
|
-1
|
|
race-ring-blue-set-particle-rotation-callback
|
|
(-> self ppointer)
|
|
#f
|
|
(-> self root trans)
|
|
:to self
|
|
)
|
|
)
|
|
)
|
|
(set! (-> self part-track) (ppointer->handle (process-spawn
|
|
part-tracker
|
|
:init part-tracker-init
|
|
group-rolling-explode-ring
|
|
-1
|
|
race-ring-set-particle-rotation-callback
|
|
(-> self ppointer)
|
|
#f
|
|
(-> self root trans)
|
|
:to self
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(cond
|
|
((first-ring? self)
|
|
(logclear! (-> self mask) (process-mask actor-pause))
|
|
(process-entity-status! self (entity-perm-status bit-3) #t)
|
|
)
|
|
(else
|
|
(logior! (-> self mask) (process-mask actor-pause))
|
|
(process-entity-status! self (entity-perm-status bit-3) #f)
|
|
)
|
|
)
|
|
)
|
|
:trans (behavior ()
|
|
(if (nonzero? (-> self sound))
|
|
(update! (-> self sound))
|
|
)
|
|
(cond
|
|
((handle->process (-> self part-track))
|
|
(if (-> self keep-part-track-alive)
|
|
(set-time! (-> (the-as part-tracker (-> self part-track process 0)) start-time))
|
|
)
|
|
)
|
|
((= (-> self entity extra perm task) (game-task rolling-ring-chase-2))
|
|
(set! (-> self part-track) (ppointer->handle (process-spawn
|
|
part-tracker
|
|
:init part-tracker-init
|
|
group-rolling-ring-blue
|
|
-1
|
|
race-ring-blue-set-particle-rotation-callback
|
|
(-> self ppointer)
|
|
#f
|
|
(-> self root trans)
|
|
:to self
|
|
)
|
|
)
|
|
)
|
|
(set! (-> self keep-part-track-alive) #t)
|
|
)
|
|
(else
|
|
(set! (-> self part-track) (ppointer->handle (process-spawn
|
|
part-tracker
|
|
:init part-tracker-init
|
|
group-rolling-ring
|
|
-1
|
|
race-ring-set-particle-rotation-callback
|
|
(-> self ppointer)
|
|
#f
|
|
(-> self root trans)
|
|
:to self
|
|
)
|
|
)
|
|
)
|
|
(set! (-> self keep-part-track-alive) #t)
|
|
)
|
|
)
|
|
(cond
|
|
((not (last-ring? self))
|
|
)
|
|
((= (-> self entity extra perm task) (game-task rolling-ring-chase-2))
|
|
(spool-push *art-control* "race-ring-second-anim" 0 self -99.0)
|
|
)
|
|
(else
|
|
(spool-push *art-control* "race-ring-anim" 0 self -99.0)
|
|
)
|
|
)
|
|
)
|
|
:code (behavior ()
|
|
(loop
|
|
(suspend)
|
|
(cond
|
|
((first-ring? self)
|
|
)
|
|
((>= (- (-> *display* game-frame-counter) (-> self state-time)) (-> self timeout))
|
|
(level-hint-spawn
|
|
(text-id rolling-ring-chase-fail)
|
|
"sksp0121"
|
|
(the-as entity #f)
|
|
*entity-pool*
|
|
(game-task none)
|
|
)
|
|
(ambient-hint-spawn "st-lose" (the-as vector #f) *entity-pool* 'stinger)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) self)
|
|
(set! (-> a1-2 num-params) 0)
|
|
(set! (-> a1-2 message) 'activate)
|
|
(let ((t9-3 send-event-function)
|
|
(v1-7 (-> self alt-actor))
|
|
)
|
|
(t9-3
|
|
(if v1-7
|
|
(-> v1-7 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(go race-ring-idle)
|
|
)
|
|
)
|
|
(when *target*
|
|
(let ((gp-0 (new 'stack-no-clear 'vector)))
|
|
(set! (-> gp-0 quad) (-> self old-hips quad))
|
|
(set! (-> self old-hips quad) (-> (target-pos 26) quad))
|
|
(vector-! gp-0 gp-0 (-> self old-hips))
|
|
(when (>= (ray-flat-cyl-intersect (-> self cyl) (-> self old-hips) gp-0) 0.0)
|
|
(level-hint-spawn
|
|
(text-id rolling-ring-chase-1-hint)
|
|
"sksp0119"
|
|
(the-as entity #f)
|
|
*entity-pool*
|
|
(game-task none)
|
|
)
|
|
(if (= (-> self entity extra perm task) (game-task rolling-ring-chase-2))
|
|
(level-hint-spawn
|
|
(text-id rolling-ring-chase-2-hint)
|
|
"sksp0120"
|
|
(the-as entity #f)
|
|
*entity-pool*
|
|
(game-task none)
|
|
)
|
|
)
|
|
(cond
|
|
((first-ring? self)
|
|
(close-specific-task! (-> self entity extra perm task) (task-status need-hint))
|
|
(entity-birth-no-kill (-> self link next))
|
|
(let ((a1-9 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-9 from) self)
|
|
(set! (-> a1-9 num-params) 0)
|
|
(set! (-> a1-9 message) 'activate)
|
|
(let ((t9-12 send-event-function)
|
|
(v1-30 (-> self link next))
|
|
)
|
|
(t9-12
|
|
(if v1-30
|
|
(-> v1-30 extra process)
|
|
)
|
|
a1-9
|
|
)
|
|
)
|
|
)
|
|
)
|
|
((last-ring? self)
|
|
(let ((gp-2 (ppointer->handle (process-spawn othercam self 4 #f #t :to self)))
|
|
(s5-2 (ppointer->handle (process-spawn
|
|
fuel-cell
|
|
:init fuel-cell-init-as-clone
|
|
(process->handle self)
|
|
(-> self entity extra perm task)
|
|
:to self
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(if *target*
|
|
(logior! (-> *target* mask) (process-mask sleep))
|
|
)
|
|
(close-specific-task! (-> self entity extra perm task) (task-status need-reminder))
|
|
(logclear! (-> self draw status) (draw-status hidden))
|
|
(logior! (-> self draw status) (draw-status skip-bones))
|
|
(if (= (-> self entity extra perm task) (game-task rolling-ring-chase-2))
|
|
(ja-play-spooled-anim
|
|
(new 'static 'spool-anim :name "race-ring-second-anim" :index 4 :parts 2 :command-list '())
|
|
(the-as art-joint-anim #f)
|
|
(the-as art-joint-anim #f)
|
|
(the-as (function process-drawable symbol) false-func)
|
|
)
|
|
(ja-play-spooled-anim
|
|
(new 'static 'spool-anim :name "race-ring-anim" :index 3 :parts 2 :command-list '())
|
|
(the-as art-joint-anim #f)
|
|
(the-as art-joint-anim #f)
|
|
(the-as (function process-drawable symbol) false-func)
|
|
)
|
|
)
|
|
(logclear! (-> self draw status) (draw-status skip-bones))
|
|
(logior! (-> self draw status) (draw-status hidden))
|
|
(cond
|
|
((handle->process (the-as int gp-2))
|
|
(deactivate (-> gp-2 process 0))
|
|
)
|
|
(else
|
|
)
|
|
)
|
|
(if *target*
|
|
(logclear! (-> *target* mask) (process-mask sleep))
|
|
)
|
|
(let ((a0-54 (handle->process s5-2)))
|
|
(if a0-54
|
|
(send-event a0-54 'stop-cloning)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(entity-birth-no-kill (-> self link next))
|
|
(let ((a1-22 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-22 from) self)
|
|
(set! (-> a1-22 num-params) 0)
|
|
(set! (-> a1-22 message) 'activate)
|
|
(let ((t9-26 send-event-function)
|
|
(v1-86 (-> self link next))
|
|
)
|
|
(t9-26
|
|
(if v1-86
|
|
(-> v1-86 extra process)
|
|
)
|
|
a1-22
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(go race-ring-idle)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
:post ja-post
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate race-ring-wait (race-ring)
|
|
:code (behavior ()
|
|
(if (nonzero? (-> self sound))
|
|
(stop! (-> self sound))
|
|
)
|
|
(loop
|
|
(suspend)
|
|
(when (= (get-task-status (the-as game-task (-> self alt-task))) (task-status invalid))
|
|
(close-specific-task! (-> self entity extra perm task) (task-status need-hint))
|
|
(logclear! (-> self mask) (process-mask actor-pause))
|
|
(go race-ring-active)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate race-ring-idle (race-ring)
|
|
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
|
(case message
|
|
(('activate)
|
|
(logclear! (-> self mask) (process-mask actor-pause))
|
|
(go race-ring-active)
|
|
)
|
|
)
|
|
)
|
|
:code (behavior ()
|
|
(if (nonzero? (-> self sound))
|
|
(stop! (-> self sound))
|
|
)
|
|
(loop
|
|
(suspend)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for method 11 of type race-ring
|
|
;; INFO: Return type mismatch object vs none.
|
|
(defmethod init-from-entity! ((this race-ring) (arg0 entity-actor))
|
|
(let ((a0-1 arg0))
|
|
(if (not (entity-actor-lookup a0-1 'next-actor 0))
|
|
(stack-size-set! (-> this main-thread) 512)
|
|
)
|
|
)
|
|
(set! (-> this root) (new 'process 'trsqv))
|
|
(process-drawable-from-entity! this arg0)
|
|
(initialize-skeleton this *race-ring-sg* '())
|
|
(set! (-> this root pause-adjust-distance) 122880.0)
|
|
(set! (-> this link) (new 'process 'actor-link-info this))
|
|
(set! (-> this part-track) (the-as handle #f))
|
|
(set! (-> this alt-actor) (entity-actor-lookup arg0 'alt-actor 0))
|
|
(logior! (-> this draw status) (draw-status hidden))
|
|
(set! (-> this sound)
|
|
(new 'process 'ambient-sound (static-sound-spec "loop-racering" :fo-max 40) (-> this root trans))
|
|
)
|
|
(let ((f0-1 (res-lump-float arg0 'timeout)))
|
|
(set! (-> this timeout) (the-as time-frame (the int (* 300.0 f0-1))))
|
|
)
|
|
(let ((s4-0 (new 'stack-no-clear 'vector)))
|
|
(cond
|
|
((-> this link next)
|
|
(vector-! (-> this face-vec) (-> this link next extra trans) (-> this root trans))
|
|
)
|
|
((-> this link prev)
|
|
(vector-! (-> this face-vec) (-> this root trans) (-> this link prev extra trans))
|
|
)
|
|
)
|
|
(vector-flatten! (-> this face-vec) (-> this face-vec) (new 'static 'vector :y 1.0))
|
|
(vector-normalize! (-> this face-vec) 1.0)
|
|
(cond
|
|
((and (-> this link next) (-> this link prev))
|
|
(vector-! s4-0 (-> this link prev extra trans) (-> this root trans))
|
|
(vector-flatten! s4-0 s4-0 (new 'static 'vector :y 1.0))
|
|
(vector-normalize! s4-0 1.0)
|
|
(vector+! s4-0 s4-0 (-> this face-vec))
|
|
(vector-normalize! s4-0 1.0)
|
|
(set! (-> this rot-y) (acos (vector-dot s4-0 (new 'static 'vector :z 1.0))))
|
|
(if (< (vector-dot s4-0 (new 'static 'vector :x 1.0)) 0.0)
|
|
(set! (-> this rot-y) (- (-> this rot-y)))
|
|
)
|
|
)
|
|
(else
|
|
(set! (-> this rot-y) (acos (vector-dot (-> this face-vec) (new 'static 'vector :z 1.0))))
|
|
(if (< (vector-dot (-> this face-vec) (new 'static 'vector :x 1.0)) 0.0)
|
|
(set! (-> this rot-y) (- (-> this rot-y)))
|
|
)
|
|
(+! (-> this rot-y) 16384.0)
|
|
)
|
|
)
|
|
)
|
|
(+! (-> this rot-y) (res-lump-float arg0 'rotoffset))
|
|
(set-vector! (-> this cyl axis) (cos (-> this rot-y)) 0.0 (- (sin (-> this rot-y))) 1.0)
|
|
(vector+float*! (-> this cyl origin) (-> this root trans) (-> this cyl axis) -2048.0)
|
|
(set! (-> this cyl radius) 24576.0)
|
|
(set! (-> this cyl length) 4096.0)
|
|
(cond
|
|
((and (first-ring? this)
|
|
(!= (get-task-status (-> this entity extra perm task)) (task-status invalid))
|
|
(!= (get-task-status (-> this entity extra perm task)) 7)
|
|
)
|
|
(set! (-> this alt-task) (res-lump-value (-> this entity) 'alt-task uint))
|
|
(if (or (= (-> this alt-task) 0)
|
|
(= (get-task-status (the-as game-task (-> this alt-task))) (task-status invalid))
|
|
)
|
|
(go race-ring-active)
|
|
(go race-ring-wait)
|
|
)
|
|
)
|
|
((and (last-ring? this) (= (get-task-status (-> this entity extra perm task)) (task-status need-resolution)))
|
|
(let ((s5-2 (new 'stack-no-clear 'vector)))
|
|
(logclear! (-> this draw status) (draw-status hidden))
|
|
(ja-post)
|
|
(vector<-cspace! s5-2 (-> this node-list data 5))
|
|
(logior! (-> this draw status) (draw-status hidden))
|
|
(birth-pickup-at-point
|
|
s5-2
|
|
(pickup-type fuel-cell)
|
|
(the float (-> this entity extra perm task))
|
|
#f
|
|
this
|
|
(the-as fact-info #f)
|
|
)
|
|
)
|
|
)
|
|
((and (last-ring? this) (!= (get-task-status (-> this entity extra perm task)) (task-status invalid)))
|
|
)
|
|
)
|
|
(set! (-> this event-hook) (-> race-ring-idle event))
|
|
(go race-ring-idle)
|
|
(none)
|
|
)
|