mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
1143 lines
34 KiB
Common Lisp
1143 lines
34 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: cavegeyserrock.gc
|
|
;; name in dgo: cavegeyserrock
|
|
;; dgos: L1
|
|
|
|
#|
|
|
|
|
This file is only found in early demos.
|
|
|
|
|#
|
|
|
|
|
|
;; decomp begins
|
|
|
|
;; definition of type cavegeyserrock-control-pt
|
|
(deftype cavegeyserrock-control-pt (structure)
|
|
((trans vector :inline :offset-assert 0)
|
|
(transv vector :inline :offset-assert 16)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x20
|
|
:flag-assert #x900000020
|
|
)
|
|
|
|
;; definition for method 3 of type cavegeyserrock-control-pt
|
|
(defmethod inspect cavegeyserrock-control-pt ((obj cavegeyserrock-control-pt))
|
|
(format #t "[~8x] ~A~%" obj 'cavegeyserrock-control-pt)
|
|
(format #t "~Ttrans: #<vector @ #x~X>~%" (-> obj trans))
|
|
(format #t "~Ttransv: #<vector @ #x~X>~%" (-> obj transv))
|
|
obj
|
|
)
|
|
|
|
;; definition of type cavegeyserrock
|
|
(deftype cavegeyserrock (process-drawable)
|
|
((root-override collide-shape-moving :offset 112)
|
|
(do-burst? symbol :offset-assert 176)
|
|
(do-falling-sound? symbol :offset-assert 180)
|
|
(do-landing-sound? symbol :offset-assert 184)
|
|
(begin-travel-up float :offset-assert 188)
|
|
(begin-travel-down float :offset-assert 192)
|
|
(sync sync-info :inline :offset-assert 196)
|
|
(part2 sparticle-launch-control :offset-assert 204)
|
|
(down vector :inline :offset-assert 208)
|
|
(up vector :inline :offset-assert 224)
|
|
(control-pt cavegeyserrock-control-pt 3 :inline :offset-assert 240)
|
|
)
|
|
:heap-base #xe0
|
|
:method-count-assert 22
|
|
:size-assert #x150
|
|
:flag-assert #x1600e00150
|
|
(:methods
|
|
(dummy-20 (_type_) none 20)
|
|
(dummy-21 (_type_) none 21)
|
|
)
|
|
(:states
|
|
cavegeyserrock-idle
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type cavegeyserrock
|
|
(defmethod inspect cavegeyserrock ((obj cavegeyserrock))
|
|
(let ((t9-0 (method-of-type process-drawable inspect)))
|
|
(t9-0 obj)
|
|
)
|
|
(format #t "~T~Tdo-burst?: ~A~%" (-> obj do-burst?))
|
|
(format #t "~T~Tdo-falling-sound?: ~A~%" (-> obj do-falling-sound?))
|
|
(format #t "~T~Tdo-landing-sound?: ~A~%" (-> obj do-landing-sound?))
|
|
(format #t "~T~Tbegin-travel-up: ~f~%" (-> obj begin-travel-up))
|
|
(format #t "~T~Tbegin-travel-down: ~f~%" (-> obj begin-travel-down))
|
|
(format #t "~T~Tsync: #<sync-info @ #x~X>~%" (-> obj sync))
|
|
(format #t "~T~Tpart2: ~A~%" (-> obj part2))
|
|
(format #t "~T~Tdown: #<vector @ #x~X>~%" (-> obj down))
|
|
(format #t "~T~Tup: #<vector @ #x~X>~%" (-> obj up))
|
|
(format #t "~T~Tcontrol-pt[3] @ #x~X~%" (-> obj control-pt))
|
|
obj
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-group-id-table* 504)
|
|
(new 'static 'sparticle-launch-group
|
|
:length 7
|
|
:duration #x258
|
|
:linger-duration #x12c
|
|
:name "group-cavegeyserrock-sides"
|
|
:launcher
|
|
(new 'static 'inline-array sparticle-group-item 7
|
|
(sp-item 1869 :fade-after (meters 100.0) :falloff-to (meters 160.0) :period 36 :length 15)
|
|
(sp-item 1870 :fade-after (meters 100.0) :falloff-to (meters 160.0) :period 36 :length 15 :offset 12)
|
|
(sp-item 1871 :fade-after (meters 100.0) :falloff-to (meters 160.0) :period 36 :length 15 :offset 24)
|
|
(sp-item 1872 :fade-after (meters 100.0) :falloff-to (meters 160.0) :period 36 :length 15)
|
|
(sp-item 1873 :fade-after (meters 100.0) :falloff-to (meters 160.0) :period 36 :length 15 :offset 12)
|
|
(sp-item 1874 :fade-after (meters 100.0) :falloff-to (meters 160.0) :period 36 :length 15 :offset 24)
|
|
(sp-item 1875 :fade-after (meters 60.0) :falloff-to (meters 60.0) :period 36 :length 15 :offset 24)
|
|
)
|
|
:bounds (new 'static 'sphere :w 40960.0)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1875)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 16
|
|
(sp-flt spt-num 1.0)
|
|
(sp-int spt-rot-x 5)
|
|
(sp-flt spt-r 4096.0)
|
|
(sp-flt spt-g 2867.2)
|
|
(sp-flt spt-b 3276.8)
|
|
(sp-rnd-flt spt-vel-y (meters 0.083333336) (meters 0.16666667) 1.0)
|
|
(sp-flt spt-accel-y 0.68266666)
|
|
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
|
(sp-int spt-timer 60)
|
|
(sp-cpuinfo-flags aux-list)
|
|
(sp-int spt-next-time 30)
|
|
(sp-launcher-by-id spt-next-launcher 1876)
|
|
(sp-flt spt-conerot-x (degrees 90.0))
|
|
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-flt spt-conerot-radius (meters 2.5))
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1876)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 2
|
|
(sp-flt spt-fade-b -13.653334)
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1869)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 25
|
|
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
|
(sp-rnd-flt spt-num 0.0 2.0 1.0)
|
|
(sp-flt spt-y (meters -0.5))
|
|
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 128.0)
|
|
(sp-flt spt-g 128.0)
|
|
(sp-flt spt-b 128.0)
|
|
(sp-rnd-flt spt-a 0.0 16.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.083333336) (meters 0.16666667) 1.0)
|
|
(sp-flt spt-scalevel-x (meters 0.05))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.0) (degrees 2.0) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-fade-a 0.53333336)
|
|
(sp-flt spt-accel-y 0.68266666)
|
|
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
|
(sp-int spt-timer 60)
|
|
(sp-cpuinfo-flags bit2 bit3 bit12)
|
|
(sp-int spt-next-time 30)
|
|
(sp-launcher-by-id spt-next-launcher 1877)
|
|
(sp-flt spt-conerot-x (degrees 90.0))
|
|
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 120.0) 1.0)
|
|
(sp-flt spt-conerot-radius (meters 2.5))
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1872)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 25
|
|
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
|
(sp-rnd-flt spt-num 0.0 2.0 1.0)
|
|
(sp-flt spt-y (meters -0.5))
|
|
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 128.0)
|
|
(sp-flt spt-g 128.0)
|
|
(sp-flt spt-b 128.0)
|
|
(sp-rnd-flt spt-a 0.0 16.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.083333336) (meters 0.16666667) 1.0)
|
|
(sp-flt spt-scalevel-x (meters 0.05))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.0) (degrees 2.0) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-fade-a 0.53333336)
|
|
(sp-flt spt-accel-y 0.68266666)
|
|
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
|
(sp-int spt-timer 60)
|
|
(sp-cpuinfo-flags bit2 bit12)
|
|
(sp-int spt-next-time 30)
|
|
(sp-launcher-by-id spt-next-launcher 1877)
|
|
(sp-flt spt-conerot-x (degrees 90.0))
|
|
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 120.0) 1.0)
|
|
(sp-flt spt-conerot-radius (meters 2.5))
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1870)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 25
|
|
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
|
(sp-rnd-flt spt-num 0.0 2.0 1.0)
|
|
(sp-flt spt-y (meters -0.5))
|
|
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 128.0)
|
|
(sp-flt spt-g 128.0)
|
|
(sp-flt spt-b 128.0)
|
|
(sp-rnd-flt spt-a 0.0 16.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.083333336) (meters 0.16666667) 1.0)
|
|
(sp-flt spt-scalevel-x (meters 0.05))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.0) (degrees 2.0) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-fade-a 0.53333336)
|
|
(sp-flt spt-accel-y 0.68266666)
|
|
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
|
(sp-int spt-timer 60)
|
|
(sp-cpuinfo-flags bit2 bit3 bit12)
|
|
(sp-int spt-next-time 30)
|
|
(sp-launcher-by-id spt-next-launcher 1877)
|
|
(sp-flt spt-conerot-x (degrees 90.0))
|
|
(sp-rnd-flt spt-conerot-y (degrees 120.0) (degrees 120.0) 1.0)
|
|
(sp-flt spt-conerot-radius (meters 2.5))
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1873)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 25
|
|
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
|
(sp-rnd-flt spt-num 0.0 2.0 1.0)
|
|
(sp-flt spt-y (meters -0.5))
|
|
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 128.0)
|
|
(sp-flt spt-g 128.0)
|
|
(sp-flt spt-b 128.0)
|
|
(sp-rnd-flt spt-a 0.0 16.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.083333336) (meters 0.16666667) 1.0)
|
|
(sp-flt spt-scalevel-x (meters 0.05))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.0) (degrees 2.0) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-fade-a 0.53333336)
|
|
(sp-flt spt-accel-y 0.68266666)
|
|
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
|
(sp-int spt-timer 60)
|
|
(sp-cpuinfo-flags bit2 bit12)
|
|
(sp-int spt-next-time 30)
|
|
(sp-launcher-by-id spt-next-launcher 1877)
|
|
(sp-flt spt-conerot-x (degrees 90.0))
|
|
(sp-rnd-flt spt-conerot-y (degrees 120.0) (degrees 120.0) 1.0)
|
|
(sp-flt spt-conerot-radius (meters 2.5))
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1871)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 25
|
|
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
|
(sp-rnd-flt spt-num 0.0 2.0 1.0)
|
|
(sp-flt spt-y (meters -0.5))
|
|
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 128.0)
|
|
(sp-flt spt-g 128.0)
|
|
(sp-flt spt-b 128.0)
|
|
(sp-rnd-flt spt-a 0.0 16.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.083333336) (meters 0.16666667) 1.0)
|
|
(sp-flt spt-scalevel-x (meters 0.05))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.0) (degrees 2.0) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-fade-a 0.53333336)
|
|
(sp-flt spt-accel-y 0.68266666)
|
|
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
|
(sp-int spt-timer 60)
|
|
(sp-cpuinfo-flags bit2 bit3 bit12)
|
|
(sp-int spt-next-time 30)
|
|
(sp-launcher-by-id spt-next-launcher 1877)
|
|
(sp-flt spt-conerot-x (degrees 90.0))
|
|
(sp-rnd-flt spt-conerot-y (degrees 240.0) (degrees 120.0) 1.0)
|
|
(sp-flt spt-conerot-radius (meters 2.5))
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1874)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 25
|
|
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
|
(sp-rnd-flt spt-num 0.0 2.0 1.0)
|
|
(sp-flt spt-y (meters -0.5))
|
|
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 128.0)
|
|
(sp-flt spt-g 128.0)
|
|
(sp-flt spt-b 128.0)
|
|
(sp-rnd-flt spt-a 0.0 16.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.083333336) (meters 0.16666667) 1.0)
|
|
(sp-flt spt-scalevel-x (meters 0.05))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.0) (degrees 2.0) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-fade-a 0.53333336)
|
|
(sp-flt spt-accel-y 0.68266666)
|
|
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
|
(sp-int spt-timer 60)
|
|
(sp-cpuinfo-flags bit2 bit12)
|
|
(sp-int spt-next-time 30)
|
|
(sp-launcher-by-id spt-next-launcher 1877)
|
|
(sp-flt spt-conerot-x (degrees 90.0))
|
|
(sp-rnd-flt spt-conerot-y (degrees 240.0) (degrees 120.0) 1.0)
|
|
(sp-flt spt-conerot-radius (meters 2.5))
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1877)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 2
|
|
(sp-flt spt-fade-a -1.0666667)
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-group-id-table* 505)
|
|
(new 'static 'sparticle-launch-group
|
|
:length 9
|
|
:duration #x258
|
|
:linger-duration #x12c
|
|
:name "group-cavegeyserrock-plume"
|
|
:launcher
|
|
(new 'static 'inline-array sparticle-group-item 9
|
|
(sp-item 1881 :flags (bit1) :period 240 :length 1 :binding 1878)
|
|
(sp-item 1881 :flags (bit1) :period 240 :length 1 :binding 1879)
|
|
(sp-item 1881 :flags (bit1) :period 240 :length 1 :binding 1880)
|
|
(sp-item 1878 :fade-after (meters 120.0) :falloff-to (meters 160.0) :flags (start-dead))
|
|
(sp-item 1879 :fade-after (meters 120.0) :falloff-to (meters 160.0) :flags (start-dead))
|
|
(sp-item 1882 :fade-after (meters 120.0) :falloff-to (meters 160.0))
|
|
(sp-item 1883 :fade-after (meters 120.0) :falloff-to (meters 160.0))
|
|
(sp-item 1884 :fade-after (meters 60.0) :falloff-to (meters 60.0))
|
|
(sp-item 1880 :fade-after (meters 60.0) :falloff-to (meters 60.0) :flags (start-dead))
|
|
)
|
|
:bounds (new 'static 'sphere :w 131072.0)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1880)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 16
|
|
(sp-flt spt-num 0.4)
|
|
(sp-int spt-rot-x 5)
|
|
(sp-flt spt-r 6144.0)
|
|
(sp-flt spt-g 2867.2)
|
|
(sp-flt spt-b 3276.8)
|
|
(sp-rnd-flt spt-vel-y (meters 0.083333336) (meters 0.16666667) 1.0)
|
|
(sp-flt spt-accel-y 0.68266666)
|
|
(sp-rnd-flt spt-friction 0.94 0.02 1.0)
|
|
(sp-int spt-timer 60)
|
|
(sp-cpuinfo-flags aux-list)
|
|
(sp-int spt-next-time 30)
|
|
(sp-launcher-by-id spt-next-launcher 1876)
|
|
(sp-flt spt-conerot-x (degrees 90.0))
|
|
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-flt spt-conerot-radius (meters 2.5))
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1881)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 14
|
|
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
|
|
(sp-flt spt-num 1.0)
|
|
(sp-flt spt-y (meters -0.5))
|
|
(sp-flt spt-scale-x (meters 1.5))
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 0.0)
|
|
(sp-flt spt-a 0.0)
|
|
(sp-flt spt-vel-y (meters 0.26666668))
|
|
(sp-flt spt-accel-y 13.653334)
|
|
(sp-int spt-timer 150)
|
|
(sp-cpuinfo-flags bit3 bit12)
|
|
(sp-int spt-next-time 31)
|
|
(sp-launcher-by-id spt-next-launcher 1885)
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1885)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 3
|
|
(sp-flt spt-vel-y (meters 0.0))
|
|
(sp-flt spt-accel-y 0.0)
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1879)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 24
|
|
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
|
(sp-flt spt-num 0.5)
|
|
(sp-flt spt-y (meters -0.5))
|
|
(sp-rnd-flt spt-scale-x (meters 1.0) (meters 1.0) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 128.0)
|
|
(sp-flt spt-g 128.0)
|
|
(sp-flt spt-b 128.0)
|
|
(sp-rnd-flt spt-a 16.0 32.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.13333334) (meters 0.13333334) 1.0)
|
|
(sp-flt spt-scalevel-x (meters 0.06666667))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.0) (degrees 2.0) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-accel-y 0.68266666)
|
|
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
|
(sp-int spt-timer 60)
|
|
(sp-cpuinfo-flags bit2 bit3 bit12)
|
|
(sp-int spt-next-time 30)
|
|
(sp-launcher-by-id spt-next-launcher 1886)
|
|
(sp-rnd-flt spt-conerot-x (degrees 90.0) (degrees 15.0) 1.0)
|
|
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-flt spt-conerot-radius (meters 0.5))
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1878)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 24
|
|
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
|
(sp-flt spt-num 0.5)
|
|
(sp-flt spt-y (meters -0.5))
|
|
(sp-rnd-flt spt-scale-x (meters 1.0) (meters 1.0) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 128.0)
|
|
(sp-flt spt-g 128.0)
|
|
(sp-flt spt-b 128.0)
|
|
(sp-rnd-flt spt-a 16.0 32.0 1.0)
|
|
(sp-rnd-flt spt-vel-y (meters 0.13333334) (meters 0.13333334) 1.0)
|
|
(sp-flt spt-scalevel-x (meters 0.06666667))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.0) (degrees 2.0) 1.0)
|
|
(sp-copy-from-other spt-scalevel-y -4)
|
|
(sp-flt spt-accel-y 0.68266666)
|
|
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
|
(sp-int spt-timer 60)
|
|
(sp-cpuinfo-flags bit2 bit12)
|
|
(sp-int spt-next-time 30)
|
|
(sp-launcher-by-id spt-next-launcher 1886)
|
|
(sp-rnd-flt spt-conerot-x (degrees 90.0) (degrees 15.0) 1.0)
|
|
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-flt spt-conerot-radius (meters 0.5))
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1886)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 2
|
|
(sp-flt spt-fade-a -1.6)
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1882)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 19
|
|
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
|
(sp-rnd-flt spt-num 0.5 0.5 1.0)
|
|
(sp-rnd-flt spt-x (meters 0.0) (meters 1.0) 1.0)
|
|
(sp-flt spt-y (meters -1.0))
|
|
(sp-rnd-flt spt-scale-x (meters 2.0) (meters 2.0) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 128.0)
|
|
(sp-flt spt-g 128.0)
|
|
(sp-flt spt-b 128.0)
|
|
(sp-rnd-flt spt-a 16.0 16.0 1.0)
|
|
(sp-flt spt-vel-y (meters 0.26666668))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.0) (degrees 2.0) 1.0)
|
|
(sp-flt spt-accel-y 13.653334)
|
|
(sp-int spt-timer 30)
|
|
(sp-cpuinfo-flags bit2 bit12)
|
|
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 15.0) 1.0)
|
|
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1883)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 18
|
|
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
|
(sp-rnd-flt spt-num 0.5 0.5 1.0)
|
|
(sp-rnd-flt spt-x (meters 0.0) (meters 0.5) 1.0)
|
|
(sp-flt spt-y (meters -1.0))
|
|
(sp-rnd-flt spt-scale-x (meters 2.0) (meters 2.0) 1.0)
|
|
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-copy-from-other spt-scale-y -4)
|
|
(sp-flt spt-r 128.0)
|
|
(sp-flt spt-g 128.0)
|
|
(sp-flt spt-b 128.0)
|
|
(sp-rnd-flt spt-a 32.0 32.0 1.0)
|
|
(sp-flt spt-vel-y (meters 0.26666668))
|
|
(sp-rnd-flt spt-rotvel-z (degrees -1.0) (degrees 2.0) 1.0)
|
|
(sp-flt spt-accel-y 13.653334)
|
|
(sp-int spt-timer 30)
|
|
(sp-cpuinfo-flags bit2 bit3 bit12)
|
|
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *part-id-table* 1884)
|
|
(new 'static 'sparticle-launcher
|
|
:init-specs
|
|
(new 'static 'inline-array sp-field-init-spec 11
|
|
(sp-flt spt-num 0.5)
|
|
(sp-rnd-flt spt-x (meters 0.5) (meters 0.5) 1.0)
|
|
(sp-int spt-rot-x 5)
|
|
(sp-flt spt-r 6144.0)
|
|
(sp-flt spt-g 2457.6)
|
|
(sp-flt spt-b 3276.8)
|
|
(sp-flt spt-vel-y (meters 0.26666668))
|
|
(sp-int spt-timer 30)
|
|
(sp-cpuinfo-flags aux-list)
|
|
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
|
|
(sp-end)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(let
|
|
((v1-22
|
|
(new 'static 'skeleton-group
|
|
:art-group-name "cavegeyserrock"
|
|
:bounds
|
|
(new 'static 'vector :y -4096.0 :w 14745.6)
|
|
:max-lod 1
|
|
:version #x6
|
|
)
|
|
)
|
|
)
|
|
(set! (-> v1-22 jgeo) 0)
|
|
(set! (-> v1-22 janim) 4)
|
|
(set! (-> v1-22 mgeo 0) 1)
|
|
(set! (-> v1-22 lod-dist 0) 81920.0)
|
|
(set! (-> v1-22 mgeo 1) 3)
|
|
(set! (-> v1-22 lod-dist 1) 4095996000.0)
|
|
(set! *cavegeyserrock-sg* v1-22)
|
|
)
|
|
|
|
;; definition for method 7 of type cavegeyserrock
|
|
;; INFO: Return type mismatch process-drawable vs cavegeyserrock.
|
|
(defmethod relocate cavegeyserrock ((obj cavegeyserrock) (arg0 int))
|
|
(if (nonzero? (-> obj part2))
|
|
(&+! (-> obj part2) arg0)
|
|
)
|
|
(the-as
|
|
cavegeyserrock
|
|
((the-as
|
|
(function process-drawable int process-drawable)
|
|
(find-parent-method cavegeyserrock 7)
|
|
)
|
|
obj
|
|
arg0
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for method 20 of type cavegeyserrock
|
|
;; INFO: Return type mismatch object vs none.
|
|
(defmethod dummy-20 cavegeyserrock ((obj cavegeyserrock))
|
|
(with-pp
|
|
(when *target*
|
|
(let* ((a1-0 (target-pos 0))
|
|
(f0-0 (-> a1-0 y))
|
|
)
|
|
(when
|
|
(and
|
|
(>= f0-0 (+ -8192.0 (-> obj down y)))
|
|
(and
|
|
(>= (+ -4096.0 (-> obj root-override trans y)) f0-0)
|
|
(zero? (-> obj root-override riders num-riders))
|
|
)
|
|
)
|
|
(let ((f0-1 (vector-vector-xz-distance-squared (-> obj down) a1-0)))
|
|
(when (>= 77552690.0 f0-1)
|
|
(let ((s5-0 (>= 37748736.0 f0-1)))
|
|
(when (not s5-0)
|
|
(when (>= (- (-> obj root-override trans y) (-> obj down y)) 3072.0)
|
|
(let ((a1-1 (new 'stack-no-clear 'vector)))
|
|
(set! (-> a1-1 x) (the-as float 1))
|
|
(set! (-> a1-1 y) (the-as float #f))
|
|
(if (dummy-40 (-> obj root-override) a1-1)
|
|
(set! s5-0 #t)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(when s5-0
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) pp)
|
|
(set! (-> a1-2 num-params) 2)
|
|
(set! (-> a1-2 message) 'shove)
|
|
(set! (-> a1-2 param 0) (the-as uint #f))
|
|
(let ((v1-16 (new 'static 'attack-info :mask #xc0)))
|
|
(set! (-> v1-16 shove-up) 2048.0)
|
|
(set! (-> v1-16 shove-back) 6144.0)
|
|
(set! (-> a1-2 param 1) (the-as uint v1-16))
|
|
)
|
|
(send-event-function *target* a1-2)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; definition for method 21 of type cavegeyserrock
|
|
;; INFO: Return type mismatch quaternion vs none.
|
|
;; Used lq/sq
|
|
(defmethod dummy-21 cavegeyserrock ((obj cavegeyserrock))
|
|
(local-vars (at-0 int) (at-1 int) (s5-0 symbol))
|
|
(rlet ((vf0 :class vf)
|
|
(vf1 :class vf)
|
|
(vf2 :class vf)
|
|
)
|
|
(init-vf0-vector)
|
|
(let ((f0-0 (get-current-phase (-> obj sync))))
|
|
#t
|
|
(cond
|
|
((< f0-0 (-> obj begin-travel-up))
|
|
(let ((f30-0 (/ f0-0 (-> obj begin-travel-up))))
|
|
(set! s5-0 #t)
|
|
(dotimes (s4-0 3)
|
|
(let ((s3-0 (-> obj control-pt s4-0)))
|
|
(when (= (-> s3-0 trans y) (-> obj down y))
|
|
(set! (-> obj do-burst?) #t)
|
|
(let ((a0-2 (+ (the int (* 12.0 (- 1.0 f30-0))) 3)))
|
|
(if (zero? (rand-vu-int-count a0-2))
|
|
(+!
|
|
(-> s3-0 transv y)
|
|
(* (rand-vu-float-range 40960.0 57344.0) f30-0)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(let ((a0-4 (+ (the int (* 12.0 (- 1.0 f30-0))) 1)))
|
|
(if (zero? (rand-vu-int-count a0-4))
|
|
(spawn (-> obj part) (-> obj down))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
((< f0-0 (-> obj begin-travel-down))
|
|
(let
|
|
((f30-1
|
|
(/
|
|
(- f0-0 (-> obj begin-travel-up))
|
|
(- (-> obj begin-travel-down) (-> obj begin-travel-up))
|
|
)
|
|
)
|
|
)
|
|
(set! s5-0 #f)
|
|
(set! (-> obj do-falling-sound?) #t)
|
|
(when (-> obj do-burst?)
|
|
(sound-play-by-name
|
|
(static-sound-name "cave-top-rises")
|
|
(new-sound-id)
|
|
1024
|
|
0
|
|
0
|
|
(the-as uint 1)
|
|
(the-as vector #t)
|
|
)
|
|
(set! (-> obj do-burst?) #f)
|
|
(spawn (-> obj part) (-> obj down))
|
|
(spawn (-> obj part) (-> obj down))
|
|
(spawn (-> obj part) (-> obj down))
|
|
(spawn (-> obj part) (-> obj down))
|
|
)
|
|
(if (< f30-1 0.94)
|
|
(spawn (-> obj part2) (-> obj down))
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(set! s5-0 #t)
|
|
(when (-> obj do-falling-sound?)
|
|
(set! (-> obj do-falling-sound?) #f)
|
|
(sound-play-by-name
|
|
(static-sound-name "cave-top-falls")
|
|
(new-sound-id)
|
|
1024
|
|
0
|
|
0
|
|
(the-as uint 1)
|
|
(the-as vector #t)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(dotimes (s4-3 3)
|
|
(let ((s2-0 (-> obj control-pt s4-3))
|
|
(s3-3 (new 'stack-no-clear 'vector))
|
|
)
|
|
(set! (-> s3-3 quad) (-> s2-0 trans quad))
|
|
(cond
|
|
(s5-0
|
|
(+! (-> s2-0 transv y) (* -819200.0 (-> *display* seconds-per-frame)))
|
|
(let ((t9-14 vector+!)
|
|
(a0-17 s3-3)
|
|
(a1-9 s3-3)
|
|
(a2-2 (new 'stack-no-clear 'vector))
|
|
)
|
|
(.lvf vf1 (&-> (-> s2-0 transv) quad))
|
|
(let ((f0-15 (-> *display* seconds-per-frame)))
|
|
(.mov at-0 f0-15)
|
|
)
|
|
(.mov vf2 at-0)
|
|
(.mov.vf vf1 vf0 :mask #b1000)
|
|
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
|
(.svf (&-> a2-2 quad) vf1)
|
|
(t9-14 a0-17 a1-9 a2-2)
|
|
)
|
|
(when (< (-> s3-3 y) (-> obj down y))
|
|
(when (-> obj do-landing-sound?)
|
|
(set! (-> obj do-landing-sound?) #f)
|
|
(sound-play-by-name
|
|
(static-sound-name "cave-top-lands")
|
|
(new-sound-id)
|
|
1024
|
|
0
|
|
0
|
|
(the-as uint 1)
|
|
(the-as vector #t)
|
|
)
|
|
)
|
|
(set! (-> s3-3 y) (-> obj down y))
|
|
(let ((f0-18 (-> s2-0 transv y)))
|
|
(if (< f0-18 0.0)
|
|
(set! (-> s2-0 transv y) (* 0.3 (- f0-18)))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(set! (-> obj do-landing-sound?) #t)
|
|
(let ((f30-2 (* 0.000048828126 (- (-> obj up y) (-> s2-0 trans y)))))
|
|
(cond
|
|
((< 1.0 f30-2)
|
|
(set! f30-2 1.0)
|
|
)
|
|
((< f30-2 -1.0)
|
|
(set! f30-2 -1.0)
|
|
)
|
|
)
|
|
(+!
|
|
(-> s2-0 transv y)
|
|
(* 819200.0 (-> *display* seconds-per-frame) f30-2)
|
|
)
|
|
(let ((f0-26 (-> s2-0 transv y)))
|
|
(when (< 122880.0 (fabs f0-26))
|
|
(if (>= f0-26 0.0)
|
|
(set! (-> s2-0 transv y) 122880.0)
|
|
(set! (-> s2-0 transv y) -122880.0)
|
|
)
|
|
)
|
|
)
|
|
(let ((t9-17 vector+!)
|
|
(a0-20 s3-3)
|
|
(a1-11 s3-3)
|
|
(a2-4 (new 'stack-no-clear 'vector))
|
|
)
|
|
(.lvf vf1 (&-> (-> s2-0 transv) quad))
|
|
(let ((f0-29 (-> *display* seconds-per-frame)))
|
|
(.mov at-1 f0-29)
|
|
)
|
|
(.mov vf2 at-1)
|
|
(.mov.vf vf1 vf0 :mask #b1000)
|
|
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
|
(.svf (&-> a2-4 quad) vf1)
|
|
(t9-17 a0-20 a1-11 a2-4)
|
|
)
|
|
(let ((f0-31 (- (-> obj up y) (-> s3-3 y)))
|
|
(v1-59 (>= f30-2 0.0))
|
|
)
|
|
(when (!= v1-59 (>= f0-31 0.0))
|
|
(let ((f0-32 (-> s2-0 transv y)))
|
|
(when (< 40960.0 (fabs f0-32))
|
|
(if (>= f0-32 0.0)
|
|
(set! (-> s2-0 transv y) 40960.0)
|
|
(set! (-> s2-0 transv y) -40960.0)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> s2-0 transv y) (* 0.8 (-> s2-0 transv y)))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> s2-0 trans quad) (-> s3-3 quad))
|
|
)
|
|
)
|
|
(let ((f0-37 0.0))
|
|
(dotimes (v1-68 3)
|
|
(+! f0-37 (-> obj control-pt v1-68 trans y))
|
|
)
|
|
(let ((f0-38 (* 0.33333334 f0-37))
|
|
(a1-12 (new 'stack-no-clear 'vector))
|
|
)
|
|
(set! (-> a1-12 quad) (-> obj root-override trans quad))
|
|
(set! (-> a1-12 y) f0-38)
|
|
(TODO-RENAME-30 (-> obj root-override) a1-12)
|
|
)
|
|
)
|
|
(let ((s4-4 (new 'stack-no-clear 'vector))
|
|
(s3-4 (new 'stack-no-clear 'vector))
|
|
(s5-1 (new 'stack-no-clear 'vector))
|
|
)
|
|
(vector-!
|
|
s4-4
|
|
(the-as vector (&-> obj stack 160))
|
|
(the-as vector (-> obj control-pt))
|
|
)
|
|
(vector-!
|
|
s3-4
|
|
(the-as vector (&-> obj stack 192))
|
|
(the-as vector (-> obj control-pt))
|
|
)
|
|
(vector-cross! s5-1 s4-4 s3-4)
|
|
(vector-normalize! s5-1 1.0)
|
|
(forward-up-nopitch->quaternion
|
|
(-> obj root-override quat)
|
|
(vector-z-quaternion! (new-stack-vector0) (-> obj root-override quat))
|
|
s5-1
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(defstate cavegeyserrock-idle (cavegeyserrock)
|
|
:trans
|
|
(the-as (function none :behavior cavegeyserrock) rider-trans)
|
|
:code
|
|
(behavior ()
|
|
(while #t
|
|
(dummy-20 self)
|
|
(dummy-21 self)
|
|
(suspend)
|
|
)
|
|
(none)
|
|
)
|
|
:post
|
|
(the-as (function none :behavior cavegeyserrock) rider-post)
|
|
)
|
|
|
|
;; definition for method 10 of type cavegeyserrock
|
|
(defmethod deactivate cavegeyserrock ((obj cavegeyserrock))
|
|
(if (nonzero? (-> obj part2))
|
|
(kill-and-free-particles (-> obj part2))
|
|
)
|
|
((method-of-type process-drawable deactivate) obj)
|
|
(none)
|
|
)
|
|
|
|
;; definition for function cavecrystal-light-control-cavegeyserrock-callback
|
|
;; INFO: Return type mismatch object vs none.
|
|
;; Used lq/sq
|
|
(defun
|
|
cavecrystal-light-control-cavegeyserrock-callback
|
|
((arg0 (pointer process-drawable))
|
|
(arg1 int)
|
|
(arg2 float)
|
|
(arg3 object)
|
|
(arg4 vector)
|
|
)
|
|
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
|
(let ((v1-1 (-> arg0 0 node-list)))
|
|
(if (and (>= arg1 0) (nonzero? v1-1))
|
|
(vector<-cspace! s5-0 (-> v1-1 data arg1))
|
|
(set! (-> s5-0 quad) (-> arg0 0 root trans quad))
|
|
)
|
|
)
|
|
(set! (-> s5-0 w) arg2)
|
|
(let ((f30-0 (TODO-RENAME-10 *cavecrystal-light-control* s5-0)))
|
|
(let ((a2-2 (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0))
|
|
(a1-5 (new 'static 'vector :x 0.05 :y 0.05 :z 0.05 :w 1.0))
|
|
)
|
|
(vector-lerp! (-> arg0 0 draw color-mult) a1-5 a2-2 f30-0)
|
|
)
|
|
(set-fade! *palette-fade-controls* 0 f30-0 0.0 arg4)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 11 of type cavegeyserrock
|
|
;; INFO: Return type mismatch object vs none.
|
|
;; Used lq/sq
|
|
(defmethod copy-defaults! cavegeyserrock ((obj cavegeyserrock) (arg0 res-lump))
|
|
(local-vars (sv-16 int) (sv-32 int))
|
|
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
|
|
(let
|
|
((s4-0
|
|
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
|
|
)
|
|
)
|
|
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
|
(set! (-> s4-0 reaction) default-collision-reaction)
|
|
(set! (-> s4-0 no-reaction) nothing)
|
|
(alloc-riders s4-0 1)
|
|
(let
|
|
((s3-0
|
|
(new
|
|
'process
|
|
'collide-shape-prim-mesh
|
|
s4-0
|
|
(the-as uint 0)
|
|
(the-as uint 0)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
|
|
(set! (-> s3-0 collide-with) (the-as uint 16))
|
|
(set! (-> s3-0 prim-core action) (the-as uint 3))
|
|
(set! (-> s3-0 prim-core offense) 4)
|
|
(set! (-> s3-0 transform-index) 0)
|
|
(set-vector! (-> s3-0 local-sphere) 0.0 -4096.0 0.0 14745.6)
|
|
)
|
|
(dummy-46 s4-0)
|
|
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
|
(dummy-50 s4-0)
|
|
(set! (-> obj root-override) s4-0)
|
|
)
|
|
(set! (-> obj do-burst?) #f)
|
|
(set! (-> obj do-falling-sound?) #f)
|
|
(set! (-> obj do-landing-sound?) #f)
|
|
(process-drawable-from-entity! obj arg0)
|
|
(initialize-skeleton obj *cavegeyserrock-sg* '())
|
|
(logior! (-> obj skel status) 1)
|
|
(ja-channel-set! 1)
|
|
(let ((s4-1 (-> obj skel root-channel 0)))
|
|
(joint-control-channel-group-eval!
|
|
s4-1
|
|
(the-as art-joint-anim (-> obj draw art-group data 4))
|
|
num-func-identity
|
|
)
|
|
(set! (-> s4-1 frame-num) 0.0)
|
|
)
|
|
(set!
|
|
(-> obj root-override trans y)
|
|
(+ 8192.0 (-> obj root-override trans y))
|
|
)
|
|
(set! sv-16 0)
|
|
(let
|
|
((v1-33
|
|
(res-lump-data
|
|
arg0
|
|
'trans-offset
|
|
pointer
|
|
:tag-ptr
|
|
(the-as (pointer res-tag) (& sv-16))
|
|
)
|
|
)
|
|
)
|
|
(when v1-33
|
|
(+! (-> obj root-override trans x) (-> (the-as (pointer float) v1-33)))
|
|
(+! (-> obj root-override trans y) (l.f (&+ v1-33 4)))
|
|
(+! (-> obj root-override trans z) (l.f (&+ v1-33 8)))
|
|
)
|
|
)
|
|
(dummy-47 (-> obj root-override))
|
|
(load-params! (-> obj sync) obj (the-as uint 360.0) 0.0 0.15 0.15)
|
|
(let ((f30-0 0.4)
|
|
(f28-0 0.9)
|
|
)
|
|
(set! sv-32 0)
|
|
(let
|
|
((v1-40
|
|
(res-lump-data
|
|
arg0
|
|
'percent
|
|
pointer
|
|
:tag-ptr
|
|
(the-as (pointer res-tag) (& sv-32))
|
|
)
|
|
)
|
|
)
|
|
(when v1-40
|
|
(set! f30-0 (-> (the-as (pointer float) v1-40)))
|
|
(set! f28-0 (l.f (&+ v1-40 4)))
|
|
(if (>= 0.01 f30-0)
|
|
(set! f30-0 0.01)
|
|
)
|
|
(if (>= 0.01 f28-0)
|
|
(set! f28-0 0.01)
|
|
)
|
|
(if (>= f30-0 f28-0)
|
|
(set! f28-0 (+ 0.01 f30-0))
|
|
)
|
|
(when (>= f30-0 1.0)
|
|
(set! f28-0 (* 0.9 (/ f28-0 f30-0)))
|
|
(set! f30-0 0.9)
|
|
)
|
|
)
|
|
)
|
|
(set! (-> obj begin-travel-up) f30-0)
|
|
(set! (-> obj begin-travel-down) f28-0)
|
|
)
|
|
(set! (-> obj down quad) (-> obj root-override trans quad))
|
|
(set! (-> obj up quad) (-> obj root-override trans quad))
|
|
(set! (-> obj up y) (+ 40960.0 (-> obj up y)))
|
|
(set!
|
|
(-> obj part)
|
|
(create-launch-control (-> *part-group-id-table* 504) obj)
|
|
)
|
|
(set!
|
|
(-> obj part2)
|
|
(create-launch-control (-> *part-group-id-table* 505) obj)
|
|
)
|
|
(vector-reset! (-> obj root-override transv))
|
|
(create-connection!
|
|
*cavecrystal-light-control*
|
|
(the-as cavecrystal obj)
|
|
(-> obj entity)
|
|
(the-as
|
|
(function object object object object object)
|
|
cavecrystal-light-control-cavegeyserrock-callback
|
|
)
|
|
-1
|
|
8192.0
|
|
)
|
|
(let ((s5-1 (new 'stack-no-clear 'vector))
|
|
(f30-1 0.0)
|
|
)
|
|
(dotimes (s4-2 3)
|
|
(let ((s3-1 (-> obj control-pt s4-2)))
|
|
(set-vector! s5-1 0.0 0.0 10240.0 1.0)
|
|
(vector-rotate-around-y! s5-1 s5-1 f30-1)
|
|
(set! f30-1 (+ 21845.334 f30-1))
|
|
(vector+! (-> s3-1 trans) s5-1 (-> obj root-override trans))
|
|
(vector-reset! (-> s3-1 transv))
|
|
)
|
|
)
|
|
)
|
|
(go cavegeyserrock-idle)
|
|
(none)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|