mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
c6f0c5cd29
* 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>
974 lines
25 KiB
Common Lisp
974 lines
25 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: water-anim.gc
|
|
;; name in dgo: water-anim
|
|
;; dgos: GAME, COMMON, L1, WATER-AN
|
|
|
|
;; DECOMP BEGINS
|
|
|
|
(deftype water-anim (water-vol)
|
|
((ppointer-water-anim (pointer water-anim) :offset 24)
|
|
(look int32 :offset-assert 212)
|
|
(play-ambient-sound? symbol :offset-assert 216)
|
|
)
|
|
:heap-base #x70
|
|
:method-count-assert 30
|
|
:size-assert #xdc
|
|
:flag-assert #x1e007000dc
|
|
)
|
|
|
|
|
|
(defskelgroup *water-anim-sunken-dark-eco-qbert-sg* water-anim-sunken-dark-eco
|
|
0
|
|
-1
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 40)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-dark-eco-platform-room-sg* water-anim-sunken-dark-eco
|
|
2
|
|
-1
|
|
((3 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 22)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-dark-eco-helix-room-sg* water-anim-sunken-dark-eco
|
|
4
|
|
-1
|
|
((5 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 21)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-big-room-sg* water-anim-sunken
|
|
0
|
|
-1
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 15 0 -36 70)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-first-room-from-entrance-sg* water-anim-sunken
|
|
2
|
|
-1
|
|
((3 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 50)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-qbert-room-sg* water-anim-sunken
|
|
4
|
|
-1
|
|
((5 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 48)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-first-right-branch-sg* water-anim-sunken
|
|
6
|
|
-1
|
|
((7 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 30)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-circular-with-bullys-sg* water-anim-sunken
|
|
8
|
|
-1
|
|
((9 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 15)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-hall-with-one-whirlpool-sg* water-anim-sunken
|
|
10
|
|
-1
|
|
((11 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 27)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-hall-with-three-whirlpools-sg* water-anim-sunken
|
|
12
|
|
-1
|
|
((13 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 26)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-start-of-helix-slide-sg* water-anim-sunken
|
|
14
|
|
-1
|
|
((15 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 25)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-room-above-exit-chamber-sg* water-anim-sunken
|
|
16
|
|
-1
|
|
((17 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 45)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-hall-before-big-room-sg* water-anim-sunken
|
|
18
|
|
-1
|
|
((19 (meters 999999)))
|
|
:bounds (static-spherem 5 0 -3 24)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-short-piece-sg* water-anim-sunken
|
|
20
|
|
-1
|
|
((21 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 20)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-sunken-big-room-upper-water-sg* water-anim-sunken
|
|
22
|
|
-1
|
|
((23 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 27)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-maincave-center-pool-sg* water-anim-maincave
|
|
0
|
|
-1
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 70)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-maincave-lower-right-pool-sg* water-anim-maincave
|
|
2
|
|
-1
|
|
((3 (meters 999999)))
|
|
:bounds (static-spherem 6 0 5 61)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-maincave-mid-right-pool-sg* water-anim-maincave
|
|
4
|
|
-1
|
|
((5 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 37)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-maincave-lower-left-pool-sg* water-anim-maincave
|
|
6
|
|
-1
|
|
((7 (meters 999999)))
|
|
:bounds (static-spherem -1 0 0 20)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-maincave-mid-left-pool-sg* water-anim-maincave
|
|
8
|
|
-1
|
|
((9 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 51)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-maincave-water-with-crystal-sg* water-anim-maincave-water
|
|
0
|
|
-1
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 0 -3 22)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-robocave-main-pool-sg* water-anim-robocave
|
|
0
|
|
-1
|
|
((1 (meters 20)) (2 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 54)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-misty-mud-by-arena-sg* water-anim-misty
|
|
0
|
|
-1
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 0 -2.5 19)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-misty-mud-above-skeleton-sg* water-anim-misty
|
|
2
|
|
-1
|
|
((3 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 14)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-misty-mud-behind-skeleton-sg* water-anim-misty
|
|
4
|
|
-1
|
|
((5 (meters 999999)))
|
|
:bounds (static-spherem 0 0 4 25)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-misty-mud-above-skull-back-sg* water-anim-misty
|
|
6
|
|
-1
|
|
((7 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 14)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-misty-mud-above-skull-front-sg* water-anim-misty
|
|
8
|
|
-1
|
|
((9 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 16)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-misty-mud-other-near-skull-sg* water-anim-misty
|
|
10
|
|
-1
|
|
((11 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 13)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-misty-mud-near-skull-sg* water-anim-misty
|
|
12
|
|
-1
|
|
((13 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 15)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-misty-mud-under-spine-sg* water-anim-misty
|
|
14
|
|
-1
|
|
((15 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 16)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-misty-mud-by-dock-sg* water-anim-misty
|
|
16
|
|
-1
|
|
((17 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 21)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-misty-mud-island-near-dock-sg* water-anim-misty
|
|
18
|
|
-1
|
|
((19 (meters 999999)))
|
|
:bounds (static-spherem -1 0 -1 15)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-misty-mud-lonely-island-sg* water-anim-misty
|
|
20
|
|
-1
|
|
((21 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 10)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-misty-dark-eco-pool-sg* water-anim-misty
|
|
22
|
|
-1
|
|
((23 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 17)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-ogre-lava-sg* water-anim-ogre
|
|
0
|
|
-1
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 112)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-jungle-river-sg* water-anim-jungle
|
|
0
|
|
-1
|
|
((1 (meters 20)) (2 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 91)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-village3-lava-sg* water-anim-village3
|
|
0
|
|
-1
|
|
((1 (meters 20)) (2 (meters 999999)))
|
|
:bounds (static-spherem 15 0 10 163)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-training-lake-sg* water-anim-training
|
|
0
|
|
-1
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem -18 0 0 52)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-darkcave-water-with-crystal-sg* water-anim-darkcave
|
|
0
|
|
-1
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 19)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-rolling-water-back-sg* water-anim-rolling
|
|
0
|
|
-1
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem -10 0 0 70)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-rolling-water-front-sg* water-anim-rolling
|
|
2
|
|
-1
|
|
((3 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 70)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-finalboss-dark-eco-pool-sg* water-anim-finalboss
|
|
0
|
|
-1
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 19)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-lavatube-energy-lava-sg* water-anim-lavatube
|
|
0
|
|
-1
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 -7 0 25)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-village1-rice-paddy-sg* water-anim-village1
|
|
0
|
|
-1
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem -15 0 0 27)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-village1-fountain-sg* water-anim-village1
|
|
6
|
|
-1
|
|
((7 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 4.5)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-village1-rice-paddy-mid-sg* water-anim-village1
|
|
2
|
|
-1
|
|
((3 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 35)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-village1-rice-paddy-top-sg* water-anim-village1
|
|
4
|
|
-1
|
|
((5 (meters 999999)))
|
|
:bounds (static-spherem 6 0 -17 20)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(defskelgroup *water-anim-village2-bucket-sg* water-anim-village2
|
|
0
|
|
-1
|
|
((1 (meters 999999)))
|
|
:bounds (static-spherem 0 0 0 0.7)
|
|
:longest-edge (meters 0)
|
|
)
|
|
|
|
(deftype water-anim-look (structure)
|
|
((skel-group symbol :offset-assert 0)
|
|
(anim int32 :offset-assert 4)
|
|
(ambient-sound-spec sound-spec :offset-assert 8)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #xc
|
|
:flag-assert #x90000000c
|
|
)
|
|
|
|
|
|
(define
|
|
*water-anim-look*
|
|
(the-as (array water-anim-look)
|
|
(new
|
|
'static
|
|
'boxed-array
|
|
:type water-anim-look :length 48 :allocated-length 48
|
|
(new 'static 'water-anim-look
|
|
:skel-group '*water-anim-sunken-big-room-sg*
|
|
:anim 24
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "water-loop")
|
|
:volume #x400
|
|
:fo-min 70
|
|
:fo-max 80
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-sunken-first-room-from-entrance-sg*
|
|
:anim 24
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "water-loop")
|
|
:volume #x400
|
|
:fo-min 50
|
|
:fo-max 60
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group '*water-anim-sunken-qbert-room-sg*
|
|
:anim 24
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "water-loop")
|
|
:volume #x400
|
|
:fo-min 48
|
|
:fo-max 58
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-sunken-first-right-branch-sg*
|
|
:anim 24
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "water-loop")
|
|
:volume #x400
|
|
:fo-min 30
|
|
:fo-max 40
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-sunken-circular-with-bullys-sg*
|
|
:anim 24
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "water-loop")
|
|
:volume #x400
|
|
:fo-min 15
|
|
:fo-max 25
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-sunken-hall-with-one-whirlpool-sg*
|
|
:anim 24
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "water-loop")
|
|
:volume #x400
|
|
:fo-min 27
|
|
:fo-max 37
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-sunken-hall-with-three-whirlpools-sg*
|
|
:anim 24
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "water-loop")
|
|
:volume #x400
|
|
:fo-min 26
|
|
:fo-max 36
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-sunken-start-of-helix-slide-sg*
|
|
:anim 24
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "water-loop")
|
|
:volume #x400
|
|
:fo-min 25
|
|
:fo-max 35
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-sunken-room-above-exit-chamber-sg*
|
|
:anim 24
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "water-loop")
|
|
:volume #x400
|
|
:fo-min 45
|
|
:fo-max 55
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-sunken-hall-before-big-room-sg*
|
|
:anim 24
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "water-loop")
|
|
:volume #x400
|
|
:fo-min 20
|
|
:fo-max 30
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group '*water-anim-sunken-dark-eco-qbert-sg*
|
|
:anim 6
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "darkeco-pool")
|
|
:volume #x400
|
|
:fo-min 40
|
|
:fo-max 50
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group '*water-anim-sunken-short-piece-sg*
|
|
:anim 24
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "water-loop")
|
|
:volume #x400
|
|
:fo-min 20
|
|
:fo-max 30
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-sunken-big-room-upper-water-sg*
|
|
:anim 24
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "water-loop")
|
|
:volume #x400
|
|
:fo-min 27
|
|
:fo-max 37
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-sunken-dark-eco-platform-room-sg*
|
|
:anim 6
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "darkeco-pool")
|
|
:volume #x400
|
|
:fo-min 22
|
|
:fo-max 32
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-maincave-water-with-crystal-sg*
|
|
:anim 2
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group '*water-anim-maincave-center-pool-sg*
|
|
:anim 10
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "darkeco-pool")
|
|
:volume #x400
|
|
:fo-min 70
|
|
:fo-max 80
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-maincave-lower-right-pool-sg*
|
|
:anim 10
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "darkeco-pool")
|
|
:volume #x400
|
|
:fo-min 40
|
|
:fo-max 50
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-maincave-mid-right-pool-sg*
|
|
:anim 10
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "darkeco-pool")
|
|
:volume #x400
|
|
:fo-min 37
|
|
:fo-max 47
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-maincave-lower-left-pool-sg*
|
|
:anim 10
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "darkeco-pool")
|
|
:volume #x400
|
|
:fo-min 20
|
|
:fo-max 30
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group '*water-anim-maincave-mid-left-pool-sg*
|
|
:anim 10
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "darkeco-pool")
|
|
:volume #x400
|
|
:fo-min 51
|
|
:fo-max 61
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group '*water-anim-robocave-main-pool-sg*
|
|
:anim 3
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "darkeco-pool")
|
|
:volume #x400
|
|
:fo-min 54
|
|
:fo-max 64
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look :skel-group '*water-anim-misty-mud-by-arena-sg* :anim 24 :ambient-sound-spec #f)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-misty-mud-above-skeleton-sg*
|
|
:anim 24
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-misty-mud-behind-skeleton-sg*
|
|
:anim 24
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-misty-mud-above-skull-back-sg*
|
|
:anim 24
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-misty-mud-above-skull-front-sg*
|
|
:anim 24
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-misty-mud-other-near-skull-sg*
|
|
:anim 24
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group '*water-anim-misty-mud-near-skull-sg*
|
|
:anim 24
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group '*water-anim-misty-mud-under-spine-sg*
|
|
:anim 24
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look :skel-group '*water-anim-misty-mud-by-dock-sg* :anim 24 :ambient-sound-spec #f)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-misty-mud-island-near-dock-sg*
|
|
:anim 24
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-misty-mud-lonely-island-sg*
|
|
:anim 24
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group '*water-anim-misty-dark-eco-pool-sg*
|
|
:anim 24
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "darkeco-pool")
|
|
:volume #x400
|
|
:fo-min 17
|
|
:fo-max 27
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look :skel-group '*water-anim-ogre-lava-sg* :anim 2 :ambient-sound-spec #f)
|
|
(new 'static 'water-anim-look :skel-group '*water-anim-jungle-river-sg* :anim 3 :ambient-sound-spec #f)
|
|
(new 'static 'water-anim-look :skel-group '*water-anim-village3-lava-sg* :anim 3 :ambient-sound-spec #f)
|
|
(new 'static 'water-anim-look :skel-group '*water-anim-training-lake-sg* :anim 2 :ambient-sound-spec #f)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-darkcave-water-with-crystal-sg*
|
|
:anim 2
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look :skel-group '*water-anim-rolling-water-back-sg* :anim 4 :ambient-sound-spec #f)
|
|
(new 'static 'water-anim-look :skel-group '*water-anim-rolling-water-front-sg* :anim 4 :ambient-sound-spec #f)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-sunken-dark-eco-helix-room-sg*
|
|
:anim 6
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "helix-dark-eco")
|
|
:volume #x400
|
|
:fo-min #x78
|
|
:fo-max #x82
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-finalboss-dark-eco-pool-sg*
|
|
:anim 2
|
|
:ambient-sound-spec
|
|
(new 'static 'sound-spec
|
|
:mask #xc0
|
|
:num 1.0
|
|
:group #x1
|
|
:sound-name (static-sound-name "darkeco-pool")
|
|
:volume #x400
|
|
:fo-min 19
|
|
:fo-max 29
|
|
)
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group '*water-anim-lavatube-energy-lava-sg*
|
|
:anim 2
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look :skel-group '*water-anim-village1-rice-paddy-sg* :anim 8 :ambient-sound-spec #f)
|
|
(new 'static 'water-anim-look :skel-group '*water-anim-village1-fountain-sg* :anim 8 :ambient-sound-spec #f)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-village1-rice-paddy-mid-sg*
|
|
:anim 8
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look
|
|
:skel-group
|
|
'*water-anim-village1-rice-paddy-top-sg*
|
|
:anim 8
|
|
:ambient-sound-spec #f
|
|
)
|
|
(new 'static 'water-anim-look :skel-group '*water-anim-village2-bucket-sg* :anim 2 :ambient-sound-spec #f)
|
|
)
|
|
)
|
|
)
|
|
|
|
(defstate water-vol-idle (water-anim)
|
|
:virtual #t
|
|
:event
|
|
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
|
(let ((v1-0 arg2))
|
|
(the-as object (when (= v1-0 'move-to)
|
|
(set! (-> self root trans quad) (-> (the-as vector (-> arg3 param 0)) quad))
|
|
(set! (-> self water-height) (-> self root trans y))
|
|
(if (nonzero? (-> self sound))
|
|
(update-trans! (-> self sound) (-> self root trans))
|
|
)
|
|
(let ((v0-0 (logclear (-> self mask) (process-mask sleep-code))))
|
|
(set! (-> self mask) v0-0)
|
|
v0-0
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
:trans
|
|
(behavior ()
|
|
(let ((t9-0 (-> (method-of-type water-vol water-vol-idle) trans)))
|
|
(if t9-0
|
|
(t9-0)
|
|
)
|
|
)
|
|
(if (< (-> (math-camera-pos) y) (+ -8192.0 (-> self root trans y)))
|
|
(logior! (-> self draw status) (draw-status drwf01))
|
|
(logclear! (-> self draw status) (draw-status drwf01))
|
|
)
|
|
(if (and (-> self play-ambient-sound?) (nonzero? (-> self sound)))
|
|
(update! (-> self sound))
|
|
)
|
|
(none)
|
|
)
|
|
:code
|
|
(behavior ()
|
|
(while #t
|
|
(ja-post)
|
|
(logior! (-> self mask) (process-mask sleep-code))
|
|
(suspend)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
|
|
(defmethod get-ripple-height water-anim ((obj water-anim) (arg0 vector))
|
|
(ripple-find-height obj 0 arg0)
|
|
)
|
|
|
|
(defmethod set-stack-size! water-anim ((obj water-anim))
|
|
(none)
|
|
)
|
|
|
|
(defmethod TODO-RENAME-25 water-anim ((obj water-anim))
|
|
(local-vars (sv-16 res-tag))
|
|
(set! (-> obj play-ambient-sound?) #t)
|
|
(set! (-> obj look) (res-lump-value (-> obj entity) 'look int :default (the-as uint128 -1)))
|
|
(set! sv-16 (new 'static 'res-tag))
|
|
(let ((v1-3 (res-lump-data (-> obj entity) 'trans-offset (pointer float) :tag-ptr (& sv-16))))
|
|
(when v1-3
|
|
(+! (-> obj root trans x) (-> v1-3 0))
|
|
(+! (-> obj root trans y) (-> v1-3 1))
|
|
(+! (-> obj root trans z) (-> v1-3 2))
|
|
)
|
|
)
|
|
(let ((f0-6 (res-lump-float (-> obj entity) 'rotoffset)))
|
|
(the-as object (if (!= f0-6 0.0)
|
|
(quaternion-rotate-y! (-> obj root quat) (-> obj root quat) f0-6)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
(defmethod TODO-RENAME-22 water-anim ((obj water-anim))
|
|
(let ((s5-0 (-> obj look)))
|
|
(if (or (< s5-0 0) (>= s5-0 (-> *water-anim-look* length)))
|
|
(go process-drawable-art-error "skel group")
|
|
)
|
|
(let ((s5-1 (-> *water-anim-look* s5-0)))
|
|
(let ((s4-0 (-> s5-1 skel-group value)))
|
|
(let ((s3-0 s4-0))
|
|
(if (not (if (and (nonzero? s3-0) (type-type? (-> (the-as basic s3-0) type) skeleton-group))
|
|
s3-0
|
|
)
|
|
)
|
|
(go process-drawable-art-error "skel group")
|
|
)
|
|
)
|
|
(initialize-skeleton obj (the-as skeleton-group s4-0) '())
|
|
)
|
|
(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 (-> s5-1 anim)))
|
|
num-func-identity
|
|
)
|
|
(set! (-> s4-1 frame-num) 0.0)
|
|
)
|
|
(let ((a2-2 (-> s5-1 ambient-sound-spec)))
|
|
(when a2-2
|
|
(let ((a3-0 (new 'stack-no-clear 'vector)))
|
|
(vector+! a3-0 (-> obj root trans) (-> obj draw bounds))
|
|
(set! (-> obj sound) (new 'process 'ambient-sound a2-2 a3-0))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(ja-post)
|
|
(none)
|
|
)
|
|
|
|
|
|
|
|
|