Files
jak-project/test/decompiler/reference/engine/gfx/water/water_REF.gc
T
Tyler Wilding c6f0c5cd29 decomp: merge all s6-* remappings and finish training-obs | villagep-obs | lavatube-obs | rolling-robber | snow-obs (#1018)
* decompiler: merge all `s6-*` usages

* decomp: finish `training-obs`

* decomp: finish `rolling-robber`

* decomp: finish `villagep-obs`

* decomp: finish `lavatube-obs`

* skip function in `lavatube-obs` over #1029

* closes #1029

* kick nasm

* merge s6 and sp in variable naming pass

* revert my fix

* fix mistakes and a bad method signature

Co-authored-by: water111 <awaterford111445@gmail.com>
2021-12-28 23:16:42 -05:00

1694 lines
88 KiB
Common Lisp
Vendored
Generated

;;-*-Lisp-*-
(in-package goal)
;; failed to figure out what this is:
(set! (-> *part-id-table* 108) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 16
(sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2))
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 0.6) 1.0)
(sp-rnd-flt spt-rot-y (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 64.0 64.0 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.0016666667) (meters 0.001) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit3 left-multiply-quat)
(sp-int spt-next-time 150)
(sp-launcher-by-id spt-next-launcher 109)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 109)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.2) (sp-end))
)
)
;; definition for function birth-func-y->userdata
;; INFO: Return type mismatch int vs none.
(defun birth-func-y->userdata ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
(+! (-> arg1 user-float) (-> arg2 vector 0 y))
0
(none)
)
;; definition for function birth-func-ocean-height
;; INFO: Return type mismatch int vs none.
(defun birth-func-ocean-height ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix))
(set! (-> arg2 vector 0 y) (+ (ocean-get-height (the-as vector (-> arg2 vector))) (-> arg1 user-float)))
0
(none)
)
;; definition for function check-water-level-drop
;; INFO: Return type mismatch int vs none.
(defun check-water-level-drop ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector))
(when (and (< (-> arg2 y) (-> arg1 user-float)) (< (-> arg1 vel-sxvel y) 0.0))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(sp-kill-particle arg0 arg1)
(set-vector! s5-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0)
(sound-play-by-name (static-sound-name "water-drop") (new-sound-id) 1024 0 0 1 (the-as symbol s5-0))
(sp-launch-particles-var
*sp-particle-system-3d*
(-> *part-id-table* 108)
s5-0
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
)
)
0
(none)
)
;; definition for function check-water-level-drop-and-die
(defun check-water-level-drop-and-die ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector))
(if (and (< (-> arg2 y) (-> arg1 user-float)) (< (-> arg1 vel-sxvel y) 0.0))
(sp-kill-particle arg0 arg1)
)
(none)
)
;; definition for function check-water-level-above-and-die
(defun check-water-level-above-and-die ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 vector))
(if (>= (-> arg2 y) (-> arg1 user-float))
(sp-kill-particle arg0 arg1)
)
(none)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 110) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
(sp-flt spt-num 12.0)
(sp-rnd-flt spt-x (meters -0.25) (meters 0.5) 1.0)
(sp-rnd-flt spt-y (meters -0.05) (meters 0.1) 1.0)
(sp-rnd-flt spt-z -1024.0 2048.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.1) (meters 0.1) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.05) (meters 0.05) 1.0)
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-rnd-flt spt-a 24.0 40.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.0) (meters 0.006666667) 1.0)
(sp-rnd-flt spt-accel-y 0.68266666 0.68266666 1.0)
(sp-flt spt-friction 0.96)
(sp-int spt-timer 1500)
(sp-cpuinfo-flags bit2 bit3)
(sp-flt spt-userdata 0.0)
(sp-func spt-func 'check-water-level-above-and-die)
(sp-flt spt-conerot-x (degrees 90.0))
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 111) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
(sp-flt spt-num 0.1)
(sp-rnd-flt spt-x (meters -0.25) (meters 0.5) 1.0)
(sp-flt spt-y (meters 0.15))
(sp-rnd-flt spt-z -1024.0 2048.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.3) (meters 0.1) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.15) (meters 0.05) 1.0)
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-rnd-flt spt-a 40.0 24.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.0) (meters 0.006666667) 1.0)
(sp-flt spt-accel-y 1.3653333)
(sp-flt spt-friction 0.96)
(sp-int spt-timer 1500)
(sp-cpuinfo-flags bit2 bit3)
(sp-flt spt-userdata 0.0)
(sp-func spt-func 'check-water-level-above-and-die)
(sp-flt spt-conerot-x (degrees 90.0))
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 112) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 19
(sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2))
(sp-flt spt-num 0.05)
(sp-rnd-flt spt-x (meters -1.0) (meters 2.0) 1.0)
(sp-rnd-flt spt-z -4096.0 8192.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.5) 1.0)
(sp-rnd-flt spt-rot-y (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-flt spt-a 0.0)
(sp-rnd-flt spt-scalevel-x (meters 0.0016666667) (meters 0.001) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a 0.42666668)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit3 left-multiply-quat)
(sp-int spt-next-time 150)
(sp-launcher-by-id spt-next-launcher 113)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 113)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 4
(sp-flt spt-fade-a 0.0)
(sp-int spt-next-time 360)
(sp-launcher-by-id spt-next-launcher 114)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 114)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.7111111) (sp-end))
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 115) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 19
(sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2))
(sp-rnd-flt spt-num 0.04 0.03 1.0)
(sp-rnd-flt spt-x (meters -0.2) (meters 0.4) 1.0)
(sp-rnd-flt spt-z -819.2 1638.4 1.0)
(sp-flt spt-scale-x (meters 0.5))
(sp-rnd-flt spt-rot-y (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-flt spt-a 0.0)
(sp-flt spt-scalevel-x (meters 0.008333334))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a 0.64)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit3 left-multiply-quat)
(sp-int spt-next-time 150)
(sp-launcher-by-id spt-next-launcher 116)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 116)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 6
(sp-flt spt-scalevel-x (meters 0.006666667))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a 0.0)
(sp-int spt-next-time 150)
(sp-launcher-by-id spt-next-launcher 117)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 117)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 4
(sp-flt spt-scalevel-x (meters 0.005))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a -0.32)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 118) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :index #xa :page #x2))
(sp-flt spt-num 0.06)
(sp-flt spt-x (meters 10.0))
(sp-rnd-flt spt-scale-x (meters 0.75) (meters 1.5) 1.0)
(sp-flt spt-rot-y (degrees 0.0))
(sp-rnd-flt spt-scale-y (meters 0.75) (meters 1.5) 1.0)
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-vel-x (meters 0.01) (meters 0.006666667) 1.0)
(sp-rnd-flt spt-scalevel-x (meters 0.0033333334) (meters 0.004333333) 1.0)
(sp-rnd-flt spt-scalevel-y (meters 0.0033333334) (meters 0.004333333) 1.0)
(sp-flt spt-fade-a 0.7111111)
(sp-flt spt-friction 0.94)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit3 left-multiply-quat)
(sp-int spt-next-time 90)
(sp-launcher-by-id spt-next-launcher 119)
(sp-flt spt-rotate-y (degrees 0.0))
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 119)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 4
(sp-flt spt-fade-a 0.0)
(sp-int-plain-rnd spt-next-time 90 119 1)
(sp-launcher-by-id spt-next-launcher 120)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 120)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.21333334) (sp-end))
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 121) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 20
(sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2))
(sp-rnd-flt spt-num 0.05 0.4 1.0)
(sp-rnd-flt spt-x (meters -0.5) (meters 1.0) 1.0)
(sp-rnd-flt spt-z 2048.0 6144.0 1.0)
(sp-rnd-flt spt-scale-x (meters 0.2) (meters 0.7) 1.0)
(sp-rnd-flt spt-rot-y (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-flt spt-a 0.0)
(sp-rnd-flt spt-scalevel-x (meters 0.0016666667) (meters 0.003) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a 0.42666668)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit3 left-multiply-quat)
(sp-int spt-next-time 150)
(sp-launcher-by-id spt-next-launcher 122)
(sp-flt spt-rotate-y (degrees 0.0))
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 122)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 4
(sp-flt spt-fade-a 0.0)
(sp-int spt-next-time 360)
(sp-launcher-by-id spt-next-launcher 123)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 123)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.7111111) (sp-end))
)
)
;; failed to figure out what this is:
(set! (-> *part-group-id-table* 40) (new 'static 'sparticle-launch-group
:length 30
:duration #x384
:linger-duration #x5dc
:flags (sp-group-flag use-local-clock)
:name "group-part-water-splash"
:launcher
(new 'static 'inline-array sparticle-group-item 30
(sp-item 124 :flags (is-3d) :period 900 :length 63)
(sp-item 125 :period 900 :length 15)
(sp-item 126 :flags (is-3d) :period 900 :length 15)
(sp-item 127 :flags (is-3d) :period 900 :length 15)
(sp-item 128 :period 900 :length 15 :binding 129)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 130 :flags (is-3d) :period 900 :length 15 :offset 840)
(sp-item 131 :flags (is-3d) :period 900 :length 60 :offset 840)
(sp-item 132 :period 900 :length 10 :offset 840 :binding 133)
(sp-item 133 :flags (start-dead) :period 900 :length 120 :offset 840)
(sp-item 133 :flags (start-dead) :period 900 :length 120 :offset 840)
(sp-item 133 :flags (start-dead) :period 900 :length 120 :offset 840)
(sp-item 133 :flags (start-dead) :period 900 :length 120 :offset 840)
(sp-item 133 :flags (start-dead) :period 900 :length 120 :offset 840)
(sp-item 133 :flags (start-dead) :period 900 :length 120 :offset 840)
(sp-item 133 :flags (start-dead) :period 900 :length 120 :offset 840)
(sp-item 133 :flags (start-dead) :period 900 :length 120 :offset 840)
(sp-item 133 :flags (start-dead) :period 900 :length 120 :offset 840)
(sp-item 133 :flags (start-dead) :period 900 :length 120 :offset 840)
(sp-item 133 :flags (start-dead) :period 900 :length 120 :offset 840)
)
:bounds
(new 'static 'sphere :y -49152.0 :w 57344.0)
)
)
;; failed to figure out what this is:
(set! (-> *part-group-id-table* 41) (new 'static 'sparticle-launch-group
:length 16
:duration #x384
:linger-duration #x5dc
:flags (sp-group-flag use-local-clock)
:name "group-part-water-splash-small"
:launcher
(new 'static 'inline-array sparticle-group-item 16
(sp-item 124 :flags (is-3d) :period 900 :length 63)
(sp-item 125 :period 900 :length 15)
(sp-item 126 :flags (is-3d) :period 900 :length 15)
(sp-item 127 :flags (is-3d) :period 900 :length 15)
(sp-item 128 :period 900 :length 10 :binding 129)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
)
:bounds
(new 'static 'sphere :y -49152.0 :w 57344.0)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 129) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 18
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
(sp-flt spt-num 0.4)
(sp-rnd-flt spt-x (meters -0.2) (meters 0.4) 1.0)
(sp-rnd-flt spt-y (meters -0.2) (meters 0.4) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.05) (meters 0.15) 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 40.0 24.0 1.0)
(sp-flt spt-scalevel-x (meters 0.000033333334))
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-accel-y -1.6384001 -0.81920004 1.0)
(sp-int spt-timer 450)
(sp-cpuinfo-flags bit3)
(sp-flt spt-userdata 0.0)
(sp-func spt-func 'check-water-level-drop-and-die)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 133) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 18
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
(sp-flt spt-num 0.4)
(sp-rnd-flt spt-x (meters -0.2) (meters 0.4) 1.0)
(sp-rnd-flt spt-y (meters -0.2) (meters 0.4) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.05) (meters 0.15) 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 40.0 24.0 1.0)
(sp-flt spt-scalevel-x (meters 0.000033333334))
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-accel-y -1.6384001 -0.81920004 1.0)
(sp-int spt-timer 450)
(sp-cpuinfo-flags bit3)
(sp-flt spt-userdata 0.0)
(sp-func spt-func 'check-water-level-drop-and-die)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 131) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 17
(sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2))
(sp-flt spt-num 0.3)
(sp-rnd-flt spt-scale-x (meters 0.080000006) (meters 0.32000002) 1.0)
(sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.080000006) (meters 0.32000002) 1.0)
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-scalevel-x (meters 0.004) (meters 0.0090666665) 1.0)
(sp-rnd-flt spt-scalevel-y (meters 0.004) (meters 0.0090666665) 1.0)
(sp-flt spt-fade-a 0.32)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit3 left-multiply-quat)
(sp-int spt-next-time 150)
(sp-launcher-by-id spt-next-launcher 134)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 132) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 23
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
(sp-flt spt-num 3.2)
(sp-rnd-flt spt-x (meters -0.2) (meters 0.4) 1.0)
(sp-rnd-flt spt-y (meters -0.2) (meters 0.4) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.35) (meters 0.075) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.2) (meters 0.075) 1.0)
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-rnd-flt spt-a 40.0 24.0 1.0)
(sp-rnd-flt spt-vel-x (meters -0.002) (meters 0.004) 1.0)
(sp-rnd-flt spt-vel-y (meters 0.018666666) (meters 0.0053333333) 1.0)
(sp-rnd-flt spt-vel-z (meters -0.002) (meters 0.004) 1.0)
(sp-flt spt-scalevel-x (meters -0.00066666666))
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-accel-y -3.2768002 -0.81920004 1.0)
(sp-int spt-timer 900)
(sp-cpuinfo-flags bit3)
(sp-flt spt-userdata 0.0)
(sp-func spt-func 'check-water-level-drop)
(sp-int spt-next-time 120)
(sp-launcher-by-id spt-next-launcher 135)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 130) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 17
(sp-tex spt-texture (new 'static 'texture-id :index #x10 :page #x2))
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-scale-x (meters 0.24000001) (meters 0.71999997) 1.0)
(sp-flt spt-rot-x 16384.0)
(sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-flt spt-rot-z (degrees 0.0))
(sp-rnd-flt spt-scale-y (meters 0.8) (meters 1.7600001) 1.0)
(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-rnd-flt spt-scalevel-y (meters 0.053333335) (meters 0.013333334) 1.0)
(sp-int spt-timer 240)
(sp-cpuinfo-flags bit2 bit3 left-multiply-quat set-conerot)
(sp-int-plain-rnd spt-next-time 20 19 1)
(sp-launcher-by-id spt-next-launcher 136)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 136)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 4
(sp-flt spt-scalevel-y (meters 0.026666667))
(sp-int spt-next-time 20)
(sp-launcher-by-id spt-next-launcher 137)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 137)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 5
(sp-flt spt-scalevel-y (meters 0.0))
(sp-flt spt-fade-a -0.64)
(sp-int spt-next-time 20)
(sp-launcher-by-id spt-next-launcher 138)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 138)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 5
(sp-flt spt-scalevel-x (meters 0.0016666667))
(sp-flt spt-scalevel-y (meters -0.026666667))
(sp-int spt-next-time 20)
(sp-launcher-by-id spt-next-launcher 139)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 139)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 3
(sp-flt spt-scalevel-x (meters 0.0033333334))
(sp-flt spt-scalevel-y (meters -0.053333335))
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 126) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 17
(sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2))
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-scale-x (meters 2.4) (meters 1.6) 1.0)
(sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 2.4) (meters 1.6) 1.0)
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-scalevel-x (meters 0.004) (meters 0.0037333334) 1.0)
(sp-rnd-flt spt-scalevel-y (meters 0.004) (meters 0.0037333334) 1.0)
(sp-flt spt-fade-a 0.32)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit3 left-multiply-quat)
(sp-int spt-next-time 150)
(sp-launcher-by-id spt-next-launcher 134)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 134)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 4
(sp-flt spt-fade-a 0.0)
(sp-int spt-next-time 360)
(sp-launcher-by-id spt-next-launcher 140)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 140)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2 (sp-flt spt-fade-a -0.53333336) (sp-end))
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 127) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 19
(sp-tex spt-texture (new 'static 'texture-id :index #x1e :page #x2))
(sp-rnd-flt spt-num 0.5 1.0 1.0)
(sp-rnd-flt spt-x (meters -0.4) (meters 0.8) 1.0)
(sp-rnd-flt spt-y (meters -0.4) (meters 0.8) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.4) (meters 0.8) 1.0)
(sp-rnd-flt spt-rot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.4) (meters 0.8) 1.0)
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-scalevel-x (meters 0.004) (meters 0.0026666666) 1.0)
(sp-rnd-flt spt-scalevel-y (meters 0.004) (meters 0.0026666666) 1.0)
(sp-flt spt-fade-a 0.32)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit3 left-multiply-quat)
(sp-int spt-next-time 150)
(sp-launcher-by-id spt-next-launcher 134)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 128) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 22
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
(sp-flt spt-num 3.2)
(sp-flt spt-x (meters 0.96000004))
(sp-rnd-flt spt-scale-x (meters 0.35) (meters 0.075) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.2) (meters 0.075) 1.0)
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-rnd-flt spt-a 40.0 24.0 1.0)
(sp-rnd-flt spt-vel-x (meters 0.0026666666) (meters 0.0053333333) 1.0)
(sp-rnd-flt spt-vel-y (meters 0.016) (meters 0.0053333333) 1.0)
(sp-flt spt-scalevel-x (meters -0.00066666666))
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-accel-y -3.2768002 -0.81920004 1.0)
(sp-int spt-timer 900)
(sp-cpuinfo-flags bit3)
(sp-flt spt-userdata 0.0)
(sp-func spt-func 'check-water-level-drop)
(sp-int spt-next-time 120)
(sp-launcher-by-id spt-next-launcher 135)
(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* 135)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 3
(sp-flt spt-scalevel-x (meters 0.0))
(sp-copy-from-other spt-scalevel-y -4)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 125) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 20
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
(sp-flt spt-num 8.0)
(sp-flt spt-x (meters 0.8))
(sp-rnd-flt spt-scale-x (meters 0.15) (meters 0.05) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.15) (meters 0.05) 1.0)
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-rnd-flt spt-a 40.0 24.0 1.0)
(sp-rnd-flt spt-vel-x (meters 0.0026666666) (meters 0.0053333333) 1.0)
(sp-rnd-flt spt-vel-y (meters 0.0053333333) (meters 0.0053333333) 1.0)
(sp-flt spt-scalevel-x (meters -0.00033333333))
(sp-flt spt-scalevel-y (meters -0.00033333333))
(sp-rnd-flt spt-accel-y -2.1845336 -0.5461334 1.0)
(sp-int spt-timer 375)
(sp-cpuinfo-flags bit2 bit3)
(sp-flt spt-userdata 0.0)
(sp-func spt-func 'check-water-level-drop-and-die)
(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* 124) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 22
(sp-tex spt-texture (new 'static 'texture-id :index #x10 :page #x2))
(sp-flt spt-num 1.5)
(sp-rnd-flt spt-x (meters 0.96000004) (meters 0.16000001) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.32000002) (meters 0.96000004) 1.0)
(sp-flt spt-rot-x 16384.0)
(sp-flt spt-rot-y (degrees 90.0))
(sp-flt spt-rot-z (degrees 0.0))
(sp-rnd-flt spt-scale-y (meters 0.16000001) (meters 1.7600001) 1.0)
(sp-flt spt-r 128.0)
(sp-flt spt-g 128.0)
(sp-flt spt-b 128.0)
(sp-rnd-flt spt-a 48.0 24.0 1.0)
(sp-flt spt-vel-x (meters 0.0026666666))
(sp-rnd-flt spt-scalevel-x (meters 0.0) (meters 0.0016666667) 1.0)
(sp-flt spt-rotvel-x (degrees 0.2))
(sp-flt spt-scalevel-y (meters 0.04))
(sp-int spt-timer 240)
(sp-cpuinfo-flags bit2 bit3 left-multiply-quat set-conerot)
(sp-int-plain-rnd spt-next-time 20 19 1)
(sp-launcher-by-id spt-next-launcher 141)
(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* 141)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 6
(sp-flt spt-scalevel-x (meters 0.0))
(sp-flt spt-rotvel-x (degrees 0.16666667))
(sp-flt spt-scalevel-y (meters 0.016666668))
(sp-int spt-next-time 20)
(sp-launcher-by-id spt-next-launcher 142)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 142)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 6
(sp-flt spt-rotvel-x (degrees 0.13333334))
(sp-flt spt-scalevel-y (meters 0.0))
(sp-flt spt-fade-a -0.64)
(sp-int spt-next-time 20)
(sp-launcher-by-id spt-next-launcher 143)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 143)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 5
(sp-flt spt-rotvel-x (degrees 0.1))
(sp-flt spt-scalevel-y (meters -0.016666668))
(sp-int spt-next-time 20)
(sp-launcher-by-id spt-next-launcher 144)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 144)
(new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 3
(sp-flt spt-rotvel-x (degrees 0.06666667))
(sp-flt spt-scalevel-y (meters -0.033333335))
(sp-end)
)
)
)
;; failed to figure out what this is:
(set! (-> *part-id-table* 145) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
(sp-flt spt-num 1.0)
(sp-rnd-flt spt-scale-x (meters 0.15) (meters 0.05) 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 40.0 24.0 1.0)
(sp-rnd-flt spt-vel-x (meters -0.016666668) (meters 0.0016666667) 1.0)
(sp-flt spt-vel-y (meters 0.016666668))
(sp-rnd-flt spt-vel-z (meters -0.016666668) (meters 0.0016666667) 1.0)
(sp-flt spt-scalevel-x (meters -0.00016666666))
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-accel-y -2.7306666)
(sp-int spt-timer 300)
(sp-cpuinfo-flags bit2 bit3)
(sp-flt spt-userdata 0.0)
(sp-func spt-func 'check-water-level-drop-and-die)
(sp-int spt-next-time 225)
(sp-launcher-by-id spt-next-launcher 114)
(sp-end)
)
)
)
;; definition for method 9 of type water-control
;; INFO: Return type mismatch int vs none.
(defmethod dummy-9 water-control ((obj water-control))
0
(none)
)
;; definition for method 10 of type water-control
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defmethod dummy-10 water-control ((obj water-control))
(with-pp
(let ((s5-0 (-> obj flags)))
(cond
((zero? (logand (-> obj flags) 2))
(set! (-> obj flags) (logand -97793 (-> obj flags)))
)
((and (logtest? #x200000 (-> obj flags)) (logtest? (-> obj process state-flags) 256))
(set! (-> obj flags) (logior #x10000 (-> obj flags)))
)
((begin
(set! (-> obj top 1 quad) (-> obj top 0 quad))
(vector<-cspace! (the-as vector (-> obj top)) (-> obj process node-list data (-> obj joint-index)))
(+! (-> obj top 0 y) (-> obj top-y-offset))
(set! (-> obj bottom 1 quad) (-> obj bottom 0 quad))
(set! (-> obj bottom 0 quad) (-> obj process root trans quad))
(set! (-> obj flags) (logand -31745 (-> obj flags)))
(set! (-> obj bob-offset) (update! (-> obj bob)))
(cond
((and
(logtest? (-> obj flags) 256)
(zero? (logand (-> (the-as collide-shape-moving (-> obj process root)) root-prim prim-core action) 512))
)
(set! (-> obj real-ocean-offset) (- (ocean-get-height (the-as vector (-> obj bottom))) (-> obj base-height)))
(if (zero? (logand (-> obj flags) 512))
(set! (-> obj ocean-offset) (-> obj real-ocean-offset))
(set! (-> obj ocean-offset) (lerp (-> obj ocean-offset) (-> obj real-ocean-offset) 0.2))
)
)
((logtest? #x100000 (-> obj flags))
(let* ((a0-26 (-> obj volume process 0))
(f30-0 (ripple-find-height (the-as process-drawable a0-26) 0 (the-as vector (-> obj bottom))))
)
(set! (-> obj real-ocean-offset) (- f30-0 (-> obj base-height)))
(if (zero? (logand (-> obj flags) 512))
(set! (-> obj ocean-offset) (-> obj real-ocean-offset))
(set! (-> obj ocean-offset) (lerp (-> obj ocean-offset) (-> obj real-ocean-offset) 0.2))
)
(let ((v1-36 (new 'stack-no-clear 'vector)))
(set! (-> v1-36 quad) (-> obj bottom 0 quad))
(set! (-> v1-36 y) f30-0)
)
)
)
(else
(set! (-> obj real-ocean-offset) 0.0)
(set! (-> obj ocean-offset) 0.0)
)
)
(if (logtest? (-> (the-as collide-shape-moving (-> obj process root)) root-prim prim-core action) 512)
(set! (-> obj bob-offset) 0.0)
)
(set! (-> obj height)
(+ (-> obj base-height) (-> obj ocean-offset) (-> obj bob-offset) (-> obj align-offset))
)
(set! (-> obj surface-height) (+ (-> obj base-height) (-> obj real-ocean-offset)))
(set! (-> obj swim-depth) (fmax 0.0 (- (- (-> obj surface-height) (-> obj swim-height)) (-> obj bottom 0 y))))
(>= (-> obj height) (-> obj bottom 0 y))
)
(if (logtest? (-> (the-as collide-shape-moving (-> obj process root)) status) 1024)
(set! (-> obj on-water-time) (the-as uint (-> *display* base-frame-counter)))
)
(set! (-> obj drip-wetness) 1.0)
(set! (-> obj drip-height) (fmax (- (-> obj surface-height) (-> obj bottom 0 y)) (-> obj drip-height)))
(set! (-> obj drip-speed) 15.0)
(if (zero? (logand (-> obj flags) 512))
(TODO-RENAME-15 obj)
)
(cond
((>= (-> obj top 0 y) (-> obj height))
(let ((s4-0 (new 'stack-no-clear 'vector)))
(set! (-> s4-0 quad) (-> obj bottom 0 quad))
(vector-xz-length (-> obj process root transv))
(set! (-> s4-0 y) (-> obj surface-height))
(when (and
(logtest? (-> obj process draw status) (draw-status drwf03))
(zero? (-> obj process draw cur-lod))
(logtest? #x400000 (-> obj flags))
(logtest? #x800000 (-> obj flags))
)
(let ((f30-1 (y-angle (-> obj process root)))
(f28-0 (vector-xz-length (-> obj process root transv)))
)
(set! (-> *part-id-table* 118 init-specs 4 initial-valuef) (+ 24576.0 f30-1))
(set! (-> *part-id-table* 118 init-specs 19 initial-valuef) (+ 49152.0 f30-1))
(set! (-> *part-id-table* 118 init-specs 1 initial-valuef) (* 0.0000036621095 f28-0))
(set! (-> *part-id-table* 118 init-specs 2 initial-valuef) (* 0.1 f28-0))
(set! (-> *part-id-table* 118 init-specs 13 initial-valuef) 0.7111111)
(sp-launch-particles-var
*sp-particle-system-3d*
(-> *part-id-table* 118)
s4-0
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
(set! (-> *part-id-table* 121 init-specs 1 initial-valuef) (* 0.000004150391 f28-0))
(set! (-> *part-id-table* 121 init-specs 18 initial-valuef) f30-1)
(sp-launch-particles-var
*sp-particle-system-3d*
(-> *part-id-table* 121)
s4-0
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
(when (< f28-0 4096.0)
(set! (-> *part-id-table* 112 init-specs 4 random-rangef) (-> obj ripple-size))
(sp-launch-particles-var
*sp-particle-system-3d*
(-> *part-id-table* 112)
s4-0
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
(sp-launch-particles-var
*sp-particle-system-3d*
(-> *part-id-table* 115)
s4-0
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
)
)
)
(if (< (-> obj top 1 y) (-> obj height))
(dummy-13 obj 0.2 s4-0 1 (-> obj process root transv))
)
)
)
(else
(logior! (-> obj flags) 8192)
)
)
(when (and (logtest? (-> obj flags) 32) (logtest? #x800000 (-> obj flags)))
(let* ((v1-124 (rand-vu-int-range 3 (+ (-> obj process node-list length) -1)))
(s4-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data v1-124)))
)
(set! (-> *part-id-table* 110 init-specs 16 initial-valuef) (-> obj surface-height))
(set! (-> *part-id-table* 110 init-specs 1 initial-valuef)
(+ (lerp-scale
12.0
0.4
(the float (- (-> *display* base-frame-counter) (the-as int (-> obj enter-water-time))))
0.0
600.0
)
(* 0.00012207031 (vector-xz-length (-> obj process root transv)))
)
)
(sp-launch-particles-var
*sp-particle-system-2d*
(-> *part-id-table* 110)
s4-1
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
(set! (-> *part-id-table* 111 init-specs 16 initial-valuef) (-> obj surface-height))
(sp-launch-particles-var
*sp-particle-system-2d*
(-> *part-id-table* 111)
s4-1
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
)
)
(let ((f30-3 (- (+ (-> obj base-height) (-> obj ocean-offset) (-> obj bob-offset) (-> obj align-offset))
(-> obj swim-height)
)
)
)
(let* ((s4-2 (-> obj process root))
(v1-146 (if (and (nonzero? s4-2) (type-type? (-> s4-2 type) control-info))
s4-2
)
)
(s4-3
(and v1-146 (< (- (-> *display* base-frame-counter) (-> (the-as control-info v1-146) unknown-dword11)) 150))
)
)
(if (and
(logtest? (-> obj flags) 16)
(and s4-3 (zero? (logand (-> (the-as collide-shape-moving (-> obj process root)) status) 1024)))
)
(set! (-> obj bob amp) (* 0.8 (-> obj bob amp)))
)
(cond
((and
(logtest? (-> obj flags) 8)
(or
(logtest? (-> (the-as collide-shape-moving (-> obj process root)) status) 1024)
(>= f30-3 (-> obj bottom 0 y))
(and
(logtest? s5-0 2048)
(logtest? (-> (the-as collide-shape-moving (-> obj process root)) status) 4)
(zero? (logand (-> (the-as collide-shape-moving (-> obj process root)) status) 1))
(>= (+ 204.8 f30-3) (-> obj bottom 0 y))
)
)
(or
(logtest? s5-0 2048)
(< 12288.0 (vector-xz-length (-> obj process root transv)))
(< (+ (-> *display* base-frame-counter) -60) (the-as int (-> obj enter-water-time)))
(>= (+ (- 204.8 (fmin 6144.0 (+ (-> obj ocean-offset) (-> obj bob-offset) (-> obj align-offset)))) f30-3)
(-> obj bottom 0 y)
)
)
)
(set! (-> obj swim-time) (the-as uint (-> *display* base-frame-counter)))
(send-event (-> obj process) 'swim)
(logior! (-> obj flags) 2048)
(if (zero? (logand s5-0 2048))
(set! (-> obj enter-swim-time) (the-as uint (-> *display* base-frame-counter)))
)
(cond
((and
(logtest? (-> obj flags) 16)
(logtest? (-> (the-as collide-shape-moving (-> obj process root)) status) 4)
(zero? (logand #x10000 (-> obj flags)))
)
(let ((v1-200 (new 'stack-no-clear 'vector)))
(set! (-> v1-200 quad) (-> obj bottom 0 quad))
(set! (-> v1-200 y) (- (-> obj height) (-> obj swim-height)))
(let ((s4-4 (-> obj process root)))
(when (and
(zero? (logand (-> (the-as collide-shape-moving s4-4) status) 4096))
(logtest? (-> obj flags) 2048)
(zero? (logand (-> (the-as collide-shape-moving s4-4) root-prim prim-core action) 512))
)
(let ((a1-27 (vector-! (new 'stack-no-clear 'vector) v1-200 (-> s4-4 trans))))
(vector-float*! a1-27 a1-27 (-> *display* frames-per-second))
(dummy-37 (the-as collide-shape-moving s4-4) a1-27)
)
(logior! (-> (the-as collide-shape-moving s4-4) status) 1031)
)
)
)
)
((and (< (-> obj bottom 0 y) f30-3) (zero? (logand #x10000 (-> obj flags))))
(logior! (-> obj flags) 4096)
)
)
)
((begin
(set! s4-3 (and
(logtest? (-> obj flags) 4)
(or
(not (!= (-> obj bob amp) 0.0))
(>= (- (-> *display* base-frame-counter) (the-as int (-> obj swim-time))) 15)
)
(and (>= (- (-> obj height) (-> obj wade-height)) (-> obj bottom 0 y)) s4-3)
)
)
s4-3
)
(set! (-> obj wade-time) (the-as uint (-> *display* base-frame-counter)))
(send-event (-> obj process) 'wade)
(logior! (-> obj flags) 1024)
)
)
)
(when (and
(logtest? (-> obj flags) 8)
(< (-> obj bottom 1 y) f30-3)
(and (< f30-3 (-> obj bottom 0 y)) (logtest? s5-0 4096))
)
(logior! (-> obj flags) 2048)
(let ((a1-30 (new 'stack-no-clear 'vector)))
(set! (-> a1-30 quad) (-> obj bottom 0 quad))
(let ((s5-1 (-> obj process root)))
(set! (-> a1-30 y) f30-3)
(when (zero? (logand (-> (the-as collide-shape-moving s5-1) root-prim prim-core action) 512))
(let ((f30-4 (-> (the-as collide-shape-moving s5-1) ground-impact-vel)))
(TODO-RENAME-61 (the-as collide-shape-moving s5-1) a1-30 (-> s5-1 transv) *up-vector*)
(logior! (-> (the-as collide-shape-moving s5-1) status) 1024)
(set! (-> (the-as collide-shape-moving s5-1) ground-impact-vel) f30-4)
)
)
)
)
)
)
(when (and (logtest? #x20000 (-> obj flags)) (= (-> obj process type) target))
(when (and
(logtest? (-> (the-as collide-shape-moving (-> obj process root)) status) 1025)
(zero? (logand (-> (the-as collide-shape-moving (-> obj process root)) root-prim prim-core action) 512))
)
(when (< (-> obj process root trans y) -409.6)
(send-event (-> obj process) 'no-look-around 450)
(when (zero? (logand (-> (the-as collide-shape-moving (-> obj process root)) root-prim prim-core action) #x4000))
(cond
((= (-> obj process type) target)
(let ((a1-32 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-32 from) pp)
(set! (-> a1-32 num-params) 2)
(set! (-> a1-32 message) 'attack)
(set! (-> a1-32 param 0) (the-as uint #f))
(let ((v1-275 (new 'static 'attack-info :mask #xe0)))
(set! (-> v1-275 shove-up) 2048.0)
(set! (-> v1-275 shove-back) 0.0)
(set! (-> v1-275 mode) 'tar)
(set! (-> a1-32 param 1) (the-as uint v1-275))
)
(send-event-function (-> obj process) a1-32)
)
)
(else
(let ((a1-33 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-33 from) pp)
(set! (-> a1-33 num-params) 4)
(set! (-> a1-33 message) 'attack)
(set! (-> a1-33 param 0) (the-as uint #f))
(set! (-> a1-33 param 1) (the-as uint 'tar))
(let ((v1-281 (+ *global-attack-id* 1)))
(set! *global-attack-id* v1-281)
(set! (-> a1-33 param 2) (the-as uint v1-281))
)
(set! (-> a1-33 param 3) (the-as uint 0))
(send-event-function (-> obj process) a1-33)
)
)
)
)
(let ((v1-283 (-> obj process)))
(set! (-> (the-as collide-shape-moving (-> v1-283 root)) surf) *tar-surface*)
(set! (-> (the-as collide-shape-moving (-> v1-283 root)) ground-pat material) 4)
)
)
(set! (-> obj swim-height) (lerp (-> obj swim-height) 7372.8 0.05))
)
)
)
(else
(if (logtest? (-> obj flags) 512)
(TODO-RENAME-16 obj)
)
)
)
)
(when (not
(or (zero? (logand (-> obj flags) 64)) (zero? (logand #x800000 (-> obj flags))) (= (-> obj drip-wetness) 0.0))
)
(cond
((logtest? (-> obj flags) #x8000)
(let ((a2-15
(vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data (-> obj drip-joint-index)))
)
)
(set! (-> *part-id-table* 145 init-specs 16 initial-valuef)
(fmax (-> obj surface-height) (-> obj bottom 0 y))
)
(set! (-> *part-id-table* 145 init-specs 8 initial-valuef) (* 0.05 (- (-> a2-15 x) (-> obj drip-old-pos x))))
(set! (-> *part-id-table* 145 init-specs 9 initial-valuef) (* 0.05 (- (-> a2-15 y) (-> obj drip-old-pos y))))
(set! (-> *part-id-table* 145 init-specs 10 initial-valuef) (* 0.05 (- (-> a2-15 z) (-> obj drip-old-pos z))))
(sp-launch-particles-var
*sp-particle-system-2d*
(-> *part-id-table* 145)
a2-15
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
)
(set! (-> obj drip-time) (the-as uint (-> *display* base-frame-counter)))
(set! (-> obj flags) (logand -32769 (-> obj flags)))
(set! (-> obj drip-wetness) (seek (-> obj drip-wetness) 0.0 (* 0.001 (-> obj drip-speed))))
(set! (-> obj drip-speed) (* 1.05 (-> obj drip-speed)))
(if (= (-> obj drip-wetness) 0.0)
(set! (-> obj drip-height) 0.0)
)
)
((>= (- (-> *display* base-frame-counter) (the int (/ (the float (-> obj drip-time)) (-> obj drip-mult))))
(the int (-> obj drip-speed))
)
(let* ((s5-2 (rand-vu-int-range 3 (+ (-> obj process node-list length) -1)))
(v1-328 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-2)))
)
(when (and
(< (- (-> v1-328 y) (-> obj process root trans y)) (-> obj drip-height))
(< (-> obj height) (-> v1-328 y))
)
(set! (-> obj drip-joint-index) s5-2)
(set! (-> obj drip-old-pos quad) (-> v1-328 quad))
(logior! (-> obj flags) #x8000)
)
)
)
)
)
0
(none)
)
)
;; definition for method 11 of type water-control
;; INFO: Return type mismatch int vs none.
(defmethod start-bobbing! water-control ((obj water-control) (arg0 float) (arg1 int) (arg2 int))
(activate! (-> obj bob) (- arg0) arg1 arg2 0.9 1.0)
0
(none)
)
;; definition for function part-water-splash-callback
;; INFO: Return type mismatch int vs none.
(defun part-water-splash-callback ((arg0 part-tracker))
(let ((f1-0 (-> arg0 root trans y))
(f0-0 (the-as float (-> arg0 userdata)))
)
(set! (-> *part-id-table* 128 init-specs 16 initial-valuef) f1-0)
(set! (-> *part-id-table* 132 init-specs 18 initial-valuef) f1-0)
(set! (-> *part-id-table* 125 init-specs 16 initial-valuef) f1-0)
(set! (-> *part-id-table* 129 init-specs 15 initial-valuef) f1-0)
(set! (-> *part-id-table* 133 init-specs 15 initial-valuef) f1-0)
(set! (-> *part-id-table* 129 init-specs 12 initial-valuef) (* 13.653334 (* -0.15 f0-0)))
(set! (-> *part-id-table* 129 init-specs 12 random-rangef) (* 13.653334 (* -0.075 f0-0)))
(set! (-> *part-id-table* 133 init-specs 12 initial-valuef) (* 13.653334 (* -0.15 f0-0)))
(set! (-> *part-id-table* 133 init-specs 12 random-rangef) (* 13.653334 (* -0.075 f0-0)))
(set! (-> *part-id-table* 131 init-specs 2 initial-valuef) (* 4096.0 (* 0.1 f0-0)))
(set! (-> *part-id-table* 131 init-specs 2 random-rangef) (* 4096.0 (* 0.4 f0-0)))
(set! (-> *part-id-table* 131 init-specs 4 initial-valuef) (* 4096.0 (* 0.1 f0-0)))
(set! (-> *part-id-table* 131 init-specs 4 random-rangef) (* 4096.0 (* 0.4 f0-0)))
(set! (-> *part-id-table* 131 init-specs 9 initial-valuef) (* 13.653334 (* 1.5 f0-0)))
(set! (-> *part-id-table* 131 init-specs 9 random-rangef) (* 13.653334 (* 3.4 f0-0)))
(set! (-> *part-id-table* 131 init-specs 10 initial-valuef) (* 13.653334 (* 1.5 f0-0)))
(set! (-> *part-id-table* 131 init-specs 10 random-rangef) (* 13.653334 (* 3.4 f0-0)))
(set! (-> *part-id-table* 126 init-specs 2 initial-valuef) (* 4096.0 (* 3.0 f0-0)))
(set! (-> *part-id-table* 126 init-specs 2 random-rangef) (* 4096.0 (* 2.0 f0-0)))
(set! (-> *part-id-table* 126 init-specs 4 initial-valuef) (* 4096.0 (* 3.0 f0-0)))
(set! (-> *part-id-table* 126 init-specs 4 random-rangef) (* 4096.0 (* 2.0 f0-0)))
(set! (-> *part-id-table* 126 init-specs 9 initial-valuef) (* 13.653334 (* 1.5 f0-0)))
(set! (-> *part-id-table* 126 init-specs 9 random-rangef) (* 13.653334 (* 1.4 f0-0)))
(set! (-> *part-id-table* 126 init-specs 10 initial-valuef) (* 13.653334 (* 1.5 f0-0)))
(set! (-> *part-id-table* 126 init-specs 10 random-rangef) (* 13.653334 (* 1.4 f0-0)))
(set! (-> *part-id-table* 127 init-specs 2 initial-valuef) (* 4096.0 (* -0.5 f0-0)))
(set! (-> *part-id-table* 127 init-specs 2 random-rangef) (* 4096.0 f0-0))
(set! (-> *part-id-table* 127 init-specs 3 initial-valuef) (* 4096.0 (* -0.5 f0-0)))
(set! (-> *part-id-table* 127 init-specs 3 random-rangef) (* 4096.0 f0-0))
(set! (-> *part-id-table* 127 init-specs 4 initial-valuef) (* 4096.0 (* 0.5 f0-0)))
(set! (-> *part-id-table* 127 init-specs 4 random-rangef) (* 4096.0 f0-0))
(set! (-> *part-id-table* 127 init-specs 6 initial-valuef) (* 4096.0 (* 0.5 f0-0)))
(set! (-> *part-id-table* 127 init-specs 6 random-rangef) (* 4096.0 f0-0))
(set! (-> *part-id-table* 127 init-specs 11 initial-valuef) (* 13.653334 (* 1.5 f0-0)))
(set! (-> *part-id-table* 127 init-specs 11 random-rangef) (* 13.653334 f0-0))
(set! (-> *part-id-table* 127 init-specs 12 initial-valuef) (* 13.653334 (* 1.5 f0-0)))
(set! (-> *part-id-table* 127 init-specs 12 random-rangef) (* 13.653334 f0-0))
(set! (-> *part-id-table* 132 init-specs 1 initial-valuef) (* 4.0 f0-0))
(set! (-> *part-id-table* 132 init-specs 2 initial-valuef) (* 4096.0 (* -0.25 f0-0)))
(set! (-> *part-id-table* 132 init-specs 2 random-rangef) (* 4096.0 (* 0.5 f0-0)))
(set! (-> *part-id-table* 132 init-specs 3 initial-valuef) (* 4096.0 (* -0.25 f0-0)))
(set! (-> *part-id-table* 132 init-specs 3 random-rangef) (* 4096.0 (* 0.5 f0-0)))
(set! (-> *part-id-table* 132 init-specs 10 initial-valuef) (* 13.653334 (* -0.75 f0-0)))
(set! (-> *part-id-table* 132 init-specs 10 random-rangef) (* 13.653334 (* 1.5 f0-0)))
(set! (-> *part-id-table* 132 init-specs 12 initial-valuef) (* 13.653334 (* -0.75 f0-0)))
(set! (-> *part-id-table* 132 init-specs 12 random-rangef) (* 13.653334 (* 1.5 f0-0)))
(set! (-> *part-id-table* 132 init-specs 11 initial-valuef) (* 13.653334 (* 7.0 f0-0)))
(set! (-> *part-id-table* 132 init-specs 11 random-rangef) (* 13.653334 (* 2.0 f0-0)))
(set! (-> *part-id-table* 132 init-specs 15 initial-valuef) (* 13.653334 (* -0.3 f0-0)))
(set! (-> *part-id-table* 132 init-specs 15 random-rangef) (* 13.653334 (* -0.075 f0-0)))
(set! (-> *part-id-table* 128 init-specs 1 initial-valuef) (* 4.0 f0-0))
(set! (-> *part-id-table* 128 init-specs 2 initial-valuef) (* 1.2 f0-0))
(set! (-> *part-id-table* 128 init-specs 9 initial-valuef) (* 13.653334 f0-0))
(set! (-> *part-id-table* 128 init-specs 9 random-rangef) (* 13.653334 (* 2.0 f0-0)))
(set! (-> *part-id-table* 128 init-specs 10 initial-valuef) (* 13.653334 (* 6.0 f0-0)))
(set! (-> *part-id-table* 128 init-specs 10 random-rangef) (* 13.653334 (* 2.0 f0-0)))
(set! (-> *part-id-table* 128 init-specs 13 initial-valuef) (* 13.653334 (* -0.3 f0-0)))
(set! (-> *part-id-table* 128 init-specs 13 random-rangef) (* 13.653334 (* -0.075 f0-0)))
(set! (-> *part-id-table* 128 init-specs 9 initial-valuef) (* 13.653334 f0-0))
(set! (-> *part-id-table* 128 init-specs 9 random-rangef) (* 13.653334 (* 2.0 f0-0)))
(set! (-> *part-id-table* 128 init-specs 10 initial-valuef) (* 13.653334 (* 6.0 f0-0)))
(set! (-> *part-id-table* 128 init-specs 10 random-rangef) (* 13.653334 (* 2.0 f0-0)))
(set! (-> *part-id-table* 128 init-specs 13 initial-valuef) (* 13.653334 (* -0.3 f0-0)))
(set! (-> *part-id-table* 128 init-specs 13 random-rangef) (* 13.653334 (* -0.075 f0-0)))
(set! (-> *part-id-table* 125 init-specs 1 initial-valuef) (* 8.0 f0-0))
(set! (-> *part-id-table* 125 init-specs 2 initial-valuef) (* 4096.0 f0-0))
(set! (-> *part-id-table* 125 init-specs 9 initial-valuef) (* 13.653334 f0-0))
(set! (-> *part-id-table* 125 init-specs 9 random-rangef) (* 13.653334 (* 2.0 f0-0)))
(set! (-> *part-id-table* 125 init-specs 10 initial-valuef) (* 13.653334 (* 6.0 f0-0)))
(set! (-> *part-id-table* 125 init-specs 10 random-rangef) (* 13.653334 (* 2.0 f0-0)))
(set! (-> *part-id-table* 125 init-specs 13 initial-valuef) (* 13.653334 (* -0.3 f0-0)))
(set! (-> *part-id-table* 125 init-specs 13 random-rangef) (* 13.653334 (* -0.075 f0-0)))
(set! (-> *part-id-table* 124 init-specs 2 initial-valuef) (* 4096.0 (* 1.2 f0-0)))
(set! (-> *part-id-table* 124 init-specs 2 random-rangef) (* 4096.0 (* 0.2 f0-0)))
(set! (-> *part-id-table* 124 init-specs 3 initial-valuef) (* 4096.0 (* 0.4 f0-0)))
(set! (-> *part-id-table* 124 init-specs 3 random-rangef) (* 4096.0 (* 1.2 f0-0)))
(set! (-> *part-id-table* 124 init-specs 7 initial-valuef) (* 4096.0 (* 0.2 f0-0)))
(set! (-> *part-id-table* 124 init-specs 7 random-rangef) (* 4096.0 (* 2.2 f0-0)))
(set! (-> *part-id-table* 130 init-specs 2 initial-valuef) (* 4096.0 (* 0.3 f0-0)))
(set! (-> *part-id-table* 130 init-specs 2 random-rangef) (* 4096.0 (* 0.9 f0-0)))
(set! (-> *part-id-table* 130 init-specs 6 initial-valuef) (* 4096.0 f0-0))
(set! (-> *part-id-table* 130 init-specs 6 random-rangef) (* 4096.0 (* 2.2 f0-0)))
)
0
(none)
)
;; definition for method 15 of type water-control
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-15 water-control ((obj water-control))
(with-pp
(logior! (-> obj flags) 512)
(set! (-> obj flags) (logand -65537 (-> obj flags)))
(set! (-> obj enter-water-time) (the-as uint (-> *display* base-frame-counter)))
(set-vector! (-> obj enter-water-pos) (-> obj bottom 0 x) (-> obj surface-height) (-> obj bottom 0 z) 1.0)
(when (and (logtest? (-> obj flags) 32) (logtest? #x800000 (-> obj flags)))
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) pp)
(set! (-> a1-1 num-params) 1)
(set! (-> a1-1 message) 'query)
(set! (-> a1-1 param 0) (the-as uint 'ground-height))
(let* ((f0-4 (the-as float (send-event-function (-> obj process) a1-1)))
(f30-0 (lerp-scale 0.3 1.0 f0-4 2048.0 24576.0))
)
(if (nonzero? (-> obj process skel effect))
(dummy-10 (-> obj process skel effect) 'swim-stroke 0.0 -1)
)
(dummy-13 obj f30-0 (-> obj enter-water-pos) 1 (-> obj process root transv))
)
)
)
(if (logtest? #x20000 (-> obj flags))
(set! (-> obj swim-height) 2867.2)
)
0
(none)
)
)
;; definition for method 16 of type water-control
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-16 water-control ((obj water-control))
(set! (-> obj flags) (logand -513 (-> obj flags)))
(set-zero! (-> obj bob))
(if (logtest? #x20000 (-> obj flags))
(set! (-> obj swim-height) 2867.2)
)
0
(none)
)
;; definition for function splash-spawn
;; INFO: Return type mismatch int vs none.
(defun splash-spawn ((arg0 basic) (arg1 basic) (arg2 int))
(let ((s4-0 (get-process *default-dead-pool* part-tracker #x4000)))
(when s4-0
(let ((t9-1 (method-of-type part-tracker activate)))
(t9-1 (the-as part-tracker s4-0) *entity-pool* 'part-tracker (the-as pointer #x70004000))
)
(run-now-in-process
s4-0
part-tracker-init
(if (zero? arg2)
(-> *part-group-id-table* 41)
(-> *part-group-id-table* 40)
)
-1
part-water-splash-callback
arg0
#f
arg1
)
(-> s4-0 ppointer)
)
)
0
(none)
)
;; definition for method 13 of type water-control
;; INFO: Return type mismatch int vs none.
(defmethod dummy-13 water-control ((obj water-control) (arg0 float) (arg1 vector) (arg2 int) (arg3 vector))
(when (and (logtest? (-> obj flags) 32) (logtest? #x800000 (-> obj flags)))
(let ((a1-3 (vector+float*! (new 'stack-no-clear 'vector) arg1 arg3 0.05)))
(set! (-> a1-3 y) (-> obj surface-height))
(splash-spawn (the-as basic arg0) (the-as basic a1-3) arg2)
)
)
0
(none)
)
;; definition for method 27 of type water-vol
;; INFO: Return type mismatch int vs none.
(defmethod dummy-27 water-vol ((obj water-vol))
(when (handle->process (-> obj target))
(let ((v1-7 (-> (the-as target (-> obj target process 0)) water)))
(set! (-> v1-7 flags) (logand -129892623 (-> v1-7 flags)))
(set! (-> v1-7 volume) (the-as handle #f))
)
(set! (-> obj target) (the-as handle #f))
(iterate-process-tree
*entity-pool*
(lambda ((arg0 water-vol)) (with-pp
(if (and (type-type? (-> arg0 type) water-vol) (!= arg0 pp))
(send-event arg0 'update)
)
)
)
*null-kernel-context*
)
(process-entity-status! obj (entity-perm-status bit-3) #f)
)
0
(none)
)
;; definition for method 26 of type water-vol
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-26 water-vol ((obj water-vol))
(with-pp
(cond
((handle->process (-> obj target))
(cond
((not (dummy-10 (-> obj vol) (-> (the-as target (-> obj target process 0)) control trans)))
(dummy-27 obj)
)
(else
(let ((v1-15 (-> (the-as target (-> obj target process 0)) water)))
(when (and
(logtest? #x80000 (-> obj flags))
(logtest? (-> v1-15 flags) 512)
(>= (-> v1-15 surface-height) (-> v1-15 bottom 0 y))
)
(let ((v1-18 (-> obj attack-event)))
(case v1-18
((#f)
)
(('heat)
(send-event (handle->process (-> obj target)) 'heat (* 10.0 (-> *display* seconds-per-frame)))
)
(('drown-death 'lava 'dark-eco-pool)
(let ((a1-8 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-8 from) pp)
(set! (-> a1-8 num-params) 2)
(set! (-> a1-8 message) 'attack-invinc)
(set! (-> a1-8 param 0) (the-as uint #f))
(let ((a0-19 (new 'static 'attack-info :mask #x20)))
(set! (-> a0-19 mode) v1-18)
(set! (-> a1-8 param 1) (the-as uint a0-19))
)
(if (send-event-function (handle->process (-> obj target)) a1-8)
(send-event obj 'notify 'attack)
)
)
)
(else
(let ((a1-10 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-10 from) pp)
(set! (-> a1-10 num-params) 2)
(set! (-> a1-10 message) 'attack)
(set! (-> a1-10 param 0) (the-as uint #f))
(let ((a0-27 (new 'static 'attack-info :mask #x20)))
(set! (-> a0-27 mode) v1-18)
(set! (-> a1-10 param 1) (the-as uint a0-27))
)
(if (send-event-function (handle->process (-> obj target)) a1-10)
(send-event obj 'notify 'attack)
)
)
)
)
)
)
)
)
)
)
((and
*target*
(and (not (handle->process (-> *target* water volume))) (dummy-10 (-> obj vol) (-> *target* control trans)))
)
(let ((s5-0 (-> *target* water)))
(process-entity-status! obj (entity-perm-status bit-3) #t)
(set! (-> s5-0 volume) (process->handle obj))
(set! (-> obj target) (process->handle *target*))
(logior! (-> s5-0 flags) 2)
(set! (-> s5-0 base-height) (-> obj water-height))
(set! (-> s5-0 ocean-offset) 0.0)
(logior! (-> s5-0 flags) (-> obj flags))
(if (< 0.0 (-> obj wade-height))
(set! (-> s5-0 wade-height) (-> obj wade-height))
)
(if (< 0.0 (-> obj swim-height))
(set! (-> s5-0 swim-height) (-> obj swim-height))
)
(if (< 0.0 (-> obj bottom-height))
(set! (-> s5-0 bottom-height) (-> obj bottom-height))
)
(set-zero! (-> s5-0 bob))
)
)
)
0
(none)
)
)
;; failed to figure out what this is:
(defstate water-vol-startup (water-vol)
:virtual #t
:code
(behavior () (go-virtual water-vol-idle) (none))
)
;; failed to figure out what this is:
(defstate water-vol-idle (water-vol)
:virtual #t
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (if (= v1-0 'update)
(TODO-RENAME-26 self)
)
)
)
)
:exit
(behavior () (dummy-27 self) (none))
:trans
(behavior () (TODO-RENAME-26 self) (none))
:code
(the-as (function none :behavior water-vol) anim-loop)
)
;; definition for method 24 of type water-vol
(defmethod set-stack-size! water-vol ((obj water-vol))
(stack-size-set! (-> obj main-thread) 128)
(none)
)
;; definition for method 23 of type water-vol
;; INFO: Return type mismatch trsqv vs none.
(defmethod reset-root! water-vol ((obj water-vol))
(set! (-> obj root) (new 'process 'trsqv))
(none)
)
;; definition for method 25 of type water-vol
;; INFO: Return type mismatch int vs object.
(defmethod TODO-RENAME-25 water-vol ((obj water-vol))
(the-as object 0)
)
;; definition for method 29 of type water-vol
;; WARN: disable def twice: 85. This may happen when a cond (no else) is nested inside of another conditional, but it should be rare.
;; Used lq/sq
(defmethod TODO-RENAME-29 water-vol ((obj water-vol))
(local-vars (sv-16 res-tag))
(set! (-> obj attack-event) (the-as symbol ((method-of-type res-lump get-property-struct)
(-> obj entity)
'attack-event
'interp
-1000000000.0
'drown
(the-as (pointer res-tag) #f)
*res-static-buf*
)
)
)
(process-drawable-from-entity! obj (the-as entity-actor (-> obj entity)))
(logclear! (-> obj mask) (process-mask actor-pause))
(set! (-> obj vol) (new 'process 'vol-control obj))
(logior! (-> obj vol flags) 3)
(set! (-> obj bottom-height) 32768.0)
(set! (-> obj target) (the-as handle #f))
(set! sv-16 (new 'static 'res-tag))
(let ((v1-8 (the-as (pointer float) ((method-of-type res-lump get-property-data)
(-> obj entity)
'water-height
'exact
-1000000000.0
(the-as pointer #f)
(& sv-16)
*res-static-buf*
)
)
)
)
(when v1-8
(set! (-> obj water-height) (-> v1-8 0))
(set! (-> obj wade-height) (-> v1-8 1))
(set! (-> obj swim-height) (-> v1-8 2))
(if (>= (-> sv-16 elt-count) (the-as uint 4))
(set! (-> obj flags) (the-as uint (the int (-> v1-8 3))))
)
(if (>= (-> sv-16 elt-count) (the-as uint 5))
(set! (-> obj bottom-height) (-> v1-8 4))
)
)
)
(set! (-> obj flags) (logior #x800000 (-> obj flags)))
(cond
((zero? (-> obj flags))
(if (< 0.0 (-> obj wade-height))
(logior! (-> obj flags) 4)
)
(when (< 0.0 (-> obj swim-height))
(let ((v0-4 (logior (-> obj flags) 8)))
(set! (-> obj flags) v0-4)
v0-4
)
)
)
(else
(the-as uint #f)
)
)
)
;; definition for method 22 of type water-vol
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-22 water-vol ((obj water-vol))
0
(none)
)
;; definition for function water-vol-init-by-other
;; INFO: Return type mismatch object vs none.
(defbehavior water-vol-init-by-other water-vol ((arg0 entity))
(set! (-> self entity) arg0)
(set-stack-size! self)
(reset-root! self)
(TODO-RENAME-29 self)
(TODO-RENAME-25 self)
(TODO-RENAME-22 self)
(go-virtual water-vol-startup)
(none)
)
;; definition for method 11 of type water-vol
;; INFO: Return type mismatch object vs none.
(defmethod init-from-entity! water-vol ((obj water-vol) (arg0 entity-actor))
(set-stack-size! obj)
(reset-root! obj)
(TODO-RENAME-29 obj)
(TODO-RENAME-25 obj)
(TODO-RENAME-22 obj)
(go (method-of-object obj water-vol-startup))
(none)
)