diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index edef19022e..b818b32cec 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -17744,10 +17744,10 @@ (:methods (water-vol-idle () none 20) ;; state (water-vol-startup () none 21) ;; state - (dummy-22 (_type_) none 22) + (TODO-RENAME-22 (_type_) none 22) (dummy-23 () none 23) (dummy-24 () none 24) - (TODO-RENAME-25 (_type_) none 25) + (TODO-RENAME-25 (_type_) quaternion 25) (dummy-26 () none 26) (dummy-27 () none 27) (get-ripple-height (_type_ vector) float 28) @@ -21870,7 +21870,7 @@ ) (deftype water-anim-look (structure) - ((skel-group skeleton-group :offset-assert 0) + ((skel-group symbol :offset-assert 0) (anim int32 :offset-assert 4) (ambient-sound-spec sound-spec :offset-assert 8) ) @@ -21950,14 +21950,6 @@ (:methods (water-vol-idle () none 20) ;; state (water-vol-startup () none 21) ;; state - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) - (dummy-28 () none 28) - (dummy-29 () none 29) ) ) diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index 77b41b5d40..62a5c01041 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -1422,6 +1422,59 @@ ], "water-anim": [ + ["L13", "_lambda_", true], + ["L15", "_lambda_", true], + ["L21", "_lambda_", true], + ["L26", "state", true], + ["L27", "_auto_", true], + ["L99", "skeleton-group", true], + ["L101", "skeleton-group", true], + ["L102", "skeleton-group", true], + ["L103", "skeleton-group", true], + ["L104", "skeleton-group", true], + ["L106", "skeleton-group", true], + ["L108", "skeleton-group", true], + ["L110", "skeleton-group", true], + ["L111", "skeleton-group", true], + ["L113", "skeleton-group", true], + ["L115", "skeleton-group", true], + ["L117", "skeleton-group", true], + ["L119", "skeleton-group", true], + ["L121", "skeleton-group", true], + ["L123", "skeleton-group", true], + ["L124", "skeleton-group", true], + ["L125", "skeleton-group", true], + ["L126", "skeleton-group", true], + ["L127", "skeleton-group", true], + ["L128", "skeleton-group", true], + ["L129", "skeleton-group", true], + ["L130", "skeleton-group", true], + ["L131", "skeleton-group", true], + ["L132", "skeleton-group", true], + ["L133", "skeleton-group", true], + ["L134", "skeleton-group", true], + ["L136", "skeleton-group", true], + ["L138", "skeleton-group", true], + ["L140", "skeleton-group", true], + ["L141", "skeleton-group", true], + ["L142", "skeleton-group", true], + ["L143", "skeleton-group", true], + ["L144", "skeleton-group", true], + ["L146", "skeleton-group", true], + ["L147", "skeleton-group", true], + ["L148", "skeleton-group", true], + ["L149", "skeleton-group", true], + ["L150", "skeleton-group", true], + ["L151", "skeleton-group", true], + ["L152", "skeleton-group", true], + ["L153", "skeleton-group", true], + ["L154", "skeleton-group", true], + ["L155", "skeleton-group", true], + ["L156", "skeleton-group", true], + ["L157", "skeleton-group", true], + ["L159", "skeleton-group", true], + ["L160", "skeleton-group", true], + ["L161", "skeleton-group", true], ["L163", "float", true], ["L165", "float", true] ], diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index b8e2299a20..fde1e2c549 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -1792,12 +1792,11 @@ // ], "(anon-function 6 water-anim)": [ - [[0, 999], "s6", "water-anim"], [6, "a0", "vector"] ], "(anon-function 5 water-anim)": [ - [[0, 999], "s6", "water-anim"] + [2, "v1", "(state none)"] ], "rigid-body-platform-post": [ @@ -1826,14 +1825,15 @@ [[0, 5], "t9", "(function object)"] ], - "(anon-function 4 water-anim)": [ - [[0, 999], "s6", "water-anim"] - ], - "(method 22 water-anim)": [ [[9, 14], "t9", "(function object object)"], + [25, "s3", "basic"], [[32, 37], "t9", "(function object object)"] ], + "(method 25 water-anim)": [ + [[27, 45], "v1", "transform"] // mostly a guess, manipulating a trsqv + ], + "placeholder-do-not-add-below": [] } diff --git a/goal_src/engine/draw/process-drawable.gc b/goal_src/engine/draw/process-drawable.gc index 04c4d966d2..8441827b2d 100644 --- a/goal_src/engine/draw/process-drawable.gc +++ b/goal_src/engine/draw/process-drawable.gc @@ -5,3 +5,5 @@ ;; name in dgo: process-drawable ;; dgos: GAME, ENGINE +;; TODO - for water-anim +(define-extern ja-post (function int)) diff --git a/goal_src/engine/gfx/ripple.gc b/goal_src/engine/gfx/ripple.gc index 34c8f2e5b2..627f25ab24 100644 --- a/goal_src/engine/gfx/ripple.gc +++ b/goal_src/engine/gfx/ripple.gc @@ -149,7 +149,7 @@ ) ;; definition for function ripple-find-height -(defun ripple-find-height ((arg0 process-drawable) (arg1 basic) (arg2 vector)) +(defun ripple-find-height ((arg0 process-drawable) (arg1 int) (arg2 vector)) (local-vars (sv-16 float) (sv-32 float)) (let* ((f30-0 (-> arg0 root trans y)) (v1-1 (-> arg0 draw)) diff --git a/goal_src/engine/gfx/water/water-h.gc b/goal_src/engine/gfx/water/water-h.gc index 1d5bd1dd51..09c56e6cd9 100644 --- a/goal_src/engine/gfx/water/water-h.gc +++ b/goal_src/engine/gfx/water/water-h.gc @@ -97,16 +97,67 @@ :method-count-assert 30 :size-assert #xd4 :flag-assert #x1e007000d4 + ;; inherited inspect of process-drawable (:methods (water-vol-idle () none 20) ;; state (water-vol-startup () none 21) ;; state - (dummy-22 () none 22) + (TODO-RENAME-22 (_type_) none 22) (dummy-23 () none 23) (dummy-24 () none 24) - (dummy-25 () none 25) + (TODO-RENAME-25 (_type_) quaternion 25) (dummy-26 () none 26) (dummy-27 () none 27) - (dummy-28 () none 28) + (get-ripple-height (_type_ vector) float 28) (dummy-29 () none 29) ) ) + +;; Manually Added +(define-extern *water-anim-sunken-dark-eco-qbert-sg* skeleton-group) +(define-extern *water-anim-sunken-dark-eco-platform-room-sg* skeleton-group) +(define-extern *water-anim-sunken-dark-eco-helix-room-sg* skeleton-group) +(define-extern *water-anim-sunken-big-room-sg* skeleton-group) +(define-extern *water-anim-sunken-first-room-from-entrance-sg* skeleton-group) +(define-extern *water-anim-sunken-qbert-room-sg* skeleton-group) +(define-extern *water-anim-sunken-first-right-branch-sg* skeleton-group) +(define-extern *water-anim-sunken-circular-with-bullys-sg* skeleton-group) +(define-extern *water-anim-sunken-hall-with-one-whirlpool-sg* skeleton-group) +(define-extern *water-anim-sunken-hall-with-three-whirlpools-sg* skeleton-group) +(define-extern *water-anim-sunken-start-of-helix-slide-sg* skeleton-group) +(define-extern *water-anim-sunken-room-above-exit-chamber-sg* skeleton-group) +(define-extern *water-anim-sunken-hall-before-big-room-sg* skeleton-group) +(define-extern *water-anim-sunken-short-piece-sg* skeleton-group) +(define-extern *water-anim-sunken-big-room-upper-water-sg* skeleton-group) +(define-extern *water-anim-maincave-center-pool-sg* skeleton-group) +(define-extern *water-anim-maincave-lower-right-pool-sg* skeleton-group) +(define-extern *water-anim-maincave-mid-right-pool-sg* skeleton-group) +(define-extern *water-anim-maincave-lower-left-pool-sg* skeleton-group) +(define-extern *water-anim-maincave-mid-left-pool-sg* skeleton-group) +(define-extern *water-anim-maincave-water-with-crystal-sg* skeleton-group) +(define-extern *water-anim-robocave-main-pool-sg* skeleton-group) +(define-extern *water-anim-misty-mud-by-arena-sg* skeleton-group) +(define-extern *water-anim-misty-mud-above-skeleton-sg* skeleton-group) +(define-extern *water-anim-misty-mud-behind-skeleton-sg* skeleton-group) +(define-extern *water-anim-misty-mud-above-skull-back-sg* skeleton-group) +(define-extern *water-anim-misty-mud-above-skull-front-sg* skeleton-group) +(define-extern *water-anim-misty-mud-other-near-skull-sg* skeleton-group) +(define-extern *water-anim-misty-mud-near-skull-sg* skeleton-group) +(define-extern *water-anim-misty-mud-under-spine-sg* skeleton-group) +(define-extern *water-anim-misty-mud-by-dock-sg* skeleton-group) +(define-extern *water-anim-misty-mud-island-near-dock-sg* skeleton-group) +(define-extern *water-anim-misty-mud-lonely-island-sg* skeleton-group) +(define-extern *water-anim-misty-dark-eco-pool-sg* skeleton-group) +(define-extern *water-anim-ogre-lava-sg* skeleton-group) +(define-extern *water-anim-jungle-river-sg* skeleton-group) +(define-extern *water-anim-village3-lava-sg* skeleton-group) +(define-extern *water-anim-training-lake-sg* skeleton-group) +(define-extern *water-anim-darkcave-water-with-crystal-sg* skeleton-group) +(define-extern *water-anim-rolling-water-back-sg* skeleton-group) +(define-extern *water-anim-rolling-water-front-sg* skeleton-group) +(define-extern *water-anim-finalboss-dark-eco-pool-sg* skeleton-group) +(define-extern *water-anim-lavatube-energy-lava-sg* skeleton-group) +(define-extern *water-anim-village1-rice-paddy-sg* skeleton-group) +(define-extern *water-anim-village1-fountain-sg* skeleton-group) +(define-extern *water-anim-village1-rice-paddy-mid-sg* skeleton-group) +(define-extern *water-anim-village1-rice-paddy-top-sg* skeleton-group) +(define-extern *water-anim-village2-bucket-sg* skeleton-group) diff --git a/goal_src/levels/common/water-anim.gc b/goal_src/levels/common/water-anim.gc index c9e5f5e24a..aef7cdafd8 100644 --- a/goal_src/levels/common/water-anim.gc +++ b/goal_src/levels/common/water-anim.gc @@ -5,3 +5,2001 @@ ;; name in dgo: water-anim ;; dgos: GAME, COMMON, L1, WATER-AN +;; definition of type water-anim +(deftype water-anim (water-vol) + ((ppointer-water-anim (pointer water-anim) :offset 24) + (look int32 :offset-assert 212) + (play-ambient-sound? basic :offset-assert 216) + ) + :heap-base #x70 + :method-count-assert 30 + :size-assert #xdc + :flag-assert #x1e007000dc + ) + +;; definition for method 3 of type water-anim +(defmethod inspect water-anim ((obj water-anim)) + (let ((t9-0 (method-of-type water-vol inspect))) + (t9-0 obj) + ) + (format #t "~T~Tlook: ~D~%" (-> obj look)) + (format #t "~T~Tplay-ambient-sound?: ~A~%" (-> obj play-ambient-sound?)) + obj + ) + +;; failed to figure out what this is: +(let + ((v1-1 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken-dark-eco" + :bounds (new 'static 'vector :w 163840.0) + :version #x6 + ) + ) + ) + (set! (-> v1-1 jgeo) 0) + (set! (-> v1-1 janim) -1) + (set! (-> v1-1 mgeo 0) (the-as uint 1)) + (set! (-> v1-1 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-dark-eco-qbert-sg* v1-1) + ) + +;; failed to figure out what this is: +(let + ((v1-2 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken-dark-eco" + :bounds (new 'static 'vector :w 90112.0) + :version #x6 + ) + ) + ) + (set! (-> v1-2 jgeo) 2) + (set! (-> v1-2 janim) -1) + (set! (-> v1-2 mgeo 0) (the-as uint 3)) + (set! (-> v1-2 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-dark-eco-platform-room-sg* v1-2) + ) + +;; failed to figure out what this is: +(let + ((v1-3 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken-dark-eco" + :bounds (new 'static 'vector :w 86016.0) + :version #x6 + ) + ) + ) + (set! (-> v1-3 jgeo) 4) + (set! (-> v1-3 janim) -1) + (set! (-> v1-3 mgeo 0) (the-as uint 5)) + (set! (-> v1-3 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-dark-eco-helix-room-sg* v1-3) + ) + +;; failed to figure out what this is: +(let + ((v1-4 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds + (new 'static 'vector :x 61440.0 :z -147456.0 :w 286720.0) + :version #x6 + ) + ) + ) + (set! (-> v1-4 jgeo) 0) + (set! (-> v1-4 janim) -1) + (set! (-> v1-4 mgeo 0) (the-as uint 1)) + (set! (-> v1-4 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-big-room-sg* v1-4) + ) + +;; failed to figure out what this is: +(let + ((v1-5 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 204800.0) + :version #x6 + ) + ) + ) + (set! (-> v1-5 jgeo) 2) + (set! (-> v1-5 janim) -1) + (set! (-> v1-5 mgeo 0) (the-as uint 3)) + (set! (-> v1-5 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-first-room-from-entrance-sg* v1-5) + ) + +;; failed to figure out what this is: +(let + ((v1-6 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 196608.0) + :version #x6 + ) + ) + ) + (set! (-> v1-6 jgeo) 4) + (set! (-> v1-6 janim) -1) + (set! (-> v1-6 mgeo 0) (the-as uint 5)) + (set! (-> v1-6 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-qbert-room-sg* v1-6) + ) + +;; failed to figure out what this is: +(let + ((v1-7 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 122880.0) + :version #x6 + ) + ) + ) + (set! (-> v1-7 jgeo) 6) + (set! (-> v1-7 janim) -1) + (set! (-> v1-7 mgeo 0) (the-as uint 7)) + (set! (-> v1-7 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-first-right-branch-sg* v1-7) + ) + +;; failed to figure out what this is: +(let + ((v1-8 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 61440.0) + :version #x6 + ) + ) + ) + (set! (-> v1-8 jgeo) 8) + (set! (-> v1-8 janim) -1) + (set! (-> v1-8 mgeo 0) (the-as uint 9)) + (set! (-> v1-8 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-circular-with-bullys-sg* v1-8) + ) + +;; failed to figure out what this is: +(let + ((v1-9 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 110592.0) + :version #x6 + ) + ) + ) + (set! (-> v1-9 jgeo) 10) + (set! (-> v1-9 janim) -1) + (set! (-> v1-9 mgeo 0) (the-as uint 11)) + (set! (-> v1-9 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-hall-with-one-whirlpool-sg* v1-9) + ) + +;; failed to figure out what this is: +(let + ((v1-10 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 106496.0) + :version #x6 + ) + ) + ) + (set! (-> v1-10 jgeo) 12) + (set! (-> v1-10 janim) -1) + (set! (-> v1-10 mgeo 0) (the-as uint 13)) + (set! (-> v1-10 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-hall-with-three-whirlpools-sg* v1-10) + ) + +;; failed to figure out what this is: +(let + ((v1-11 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 102400.0) + :version #x6 + ) + ) + ) + (set! (-> v1-11 jgeo) 14) + (set! (-> v1-11 janim) -1) + (set! (-> v1-11 mgeo 0) (the-as uint 15)) + (set! (-> v1-11 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-start-of-helix-slide-sg* v1-11) + ) + +;; failed to figure out what this is: +(let + ((v1-12 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 184320.0) + :version #x6 + ) + ) + ) + (set! (-> v1-12 jgeo) 16) + (set! (-> v1-12 janim) -1) + (set! (-> v1-12 mgeo 0) (the-as uint 17)) + (set! (-> v1-12 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-room-above-exit-chamber-sg* v1-12) + ) + +;; failed to figure out what this is: +(let + ((v1-13 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds + (new 'static 'vector :x 20480.0 :z -12288.0 :w 98304.0) + :version #x6 + ) + ) + ) + (set! (-> v1-13 jgeo) 18) + (set! (-> v1-13 janim) -1) + (set! (-> v1-13 mgeo 0) (the-as uint 19)) + (set! (-> v1-13 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-hall-before-big-room-sg* v1-13) + ) + +;; failed to figure out what this is: +(let + ((v1-14 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 81920.0) + :version #x6 + ) + ) + ) + (set! (-> v1-14 jgeo) 20) + (set! (-> v1-14 janim) -1) + (set! (-> v1-14 mgeo 0) (the-as uint 21)) + (set! (-> v1-14 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-short-piece-sg* v1-14) + ) + +;; failed to figure out what this is: +(let + ((v1-15 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 110592.0) + :version #x6 + ) + ) + ) + (set! (-> v1-15 jgeo) 22) + (set! (-> v1-15 janim) -1) + (set! (-> v1-15 mgeo 0) (the-as uint 23)) + (set! (-> v1-15 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-big-room-upper-water-sg* v1-15) + ) + +;; failed to figure out what this is: +(let + ((v1-16 + (new 'static 'skeleton-group + :art-group-name "water-anim-maincave" + :bounds (new 'static 'vector :w 286720.0) + :version #x6 + ) + ) + ) + (set! (-> v1-16 jgeo) 0) + (set! (-> v1-16 janim) -1) + (set! (-> v1-16 mgeo 0) (the-as uint 1)) + (set! (-> v1-16 lod-dist 0) 4095996000.0) + (set! *water-anim-maincave-center-pool-sg* v1-16) + ) + +;; failed to figure out what this is: +(let + ((v1-17 + (new 'static 'skeleton-group + :art-group-name "water-anim-maincave" + :bounds + (new 'static 'vector :x 24576.0 :z 20480.0 :w 249856.0) + :version #x6 + ) + ) + ) + (set! (-> v1-17 jgeo) 2) + (set! (-> v1-17 janim) -1) + (set! (-> v1-17 mgeo 0) (the-as uint 3)) + (set! (-> v1-17 lod-dist 0) 4095996000.0) + (set! *water-anim-maincave-lower-right-pool-sg* v1-17) + ) + +;; failed to figure out what this is: +(let + ((v1-18 + (new 'static 'skeleton-group + :art-group-name "water-anim-maincave" + :bounds (new 'static 'vector :w 151552.0) + :version #x6 + ) + ) + ) + (set! (-> v1-18 jgeo) 4) + (set! (-> v1-18 janim) -1) + (set! (-> v1-18 mgeo 0) (the-as uint 5)) + (set! (-> v1-18 lod-dist 0) 4095996000.0) + (set! *water-anim-maincave-mid-right-pool-sg* v1-18) + ) + +;; failed to figure out what this is: +(let + ((v1-19 + (new 'static 'skeleton-group + :art-group-name "water-anim-maincave" + :bounds + (new 'static 'vector :x -4096.0 :w 81920.0) + :version #x6 + ) + ) + ) + (set! (-> v1-19 jgeo) 6) + (set! (-> v1-19 janim) -1) + (set! (-> v1-19 mgeo 0) (the-as uint 7)) + (set! (-> v1-19 lod-dist 0) 4095996000.0) + (set! *water-anim-maincave-lower-left-pool-sg* v1-19) + ) + +;; failed to figure out what this is: +(let + ((v1-20 + (new 'static 'skeleton-group + :art-group-name "water-anim-maincave" + :bounds (new 'static 'vector :w 208896.0) + :version #x6 + ) + ) + ) + (set! (-> v1-20 jgeo) 8) + (set! (-> v1-20 janim) -1) + (set! (-> v1-20 mgeo 0) (the-as uint 9)) + (set! (-> v1-20 lod-dist 0) 4095996000.0) + (set! *water-anim-maincave-mid-left-pool-sg* v1-20) + ) + +;; failed to figure out what this is: +(let + ((v1-21 + (new 'static 'skeleton-group + :art-group-name "water-anim-maincave-water" + :bounds + (new 'static 'vector :z -12288.0 :w 90112.0) + :version #x6 + ) + ) + ) + (set! (-> v1-21 jgeo) 0) + (set! (-> v1-21 janim) -1) + (set! (-> v1-21 mgeo 0) (the-as uint 1)) + (set! (-> v1-21 lod-dist 0) 4095996000.0) + (set! *water-anim-maincave-water-with-crystal-sg* v1-21) + ) + +;; failed to figure out what this is: +(let + ((v1-22 + (new 'static 'skeleton-group + :art-group-name "water-anim-robocave" + :bounds (new 'static 'vector :w 221184.0) + :max-lod 1 + :version #x6 + ) + ) + ) + (set! (-> v1-22 jgeo) 0) + (set! (-> v1-22 janim) -1) + (set! (-> v1-22 mgeo 0) (the-as uint 1)) + (set! (-> v1-22 lod-dist 0) 81920.0) + (set! (-> v1-22 mgeo 1) (the-as uint 2)) + (set! (-> v1-22 lod-dist 1) 4095996000.0) + (set! *water-anim-robocave-main-pool-sg* v1-22) + ) + +;; failed to figure out what this is: +(let + ((v1-23 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds + (new 'static 'vector :z -10240.0 :w 77824.0) + :version #x6 + ) + ) + ) + (set! (-> v1-23 jgeo) 0) + (set! (-> v1-23 janim) -1) + (set! (-> v1-23 mgeo 0) (the-as uint 1)) + (set! (-> v1-23 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-by-arena-sg* v1-23) + ) + +;; failed to figure out what this is: +(let + ((v1-24 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 57344.0) + :version #x6 + ) + ) + ) + (set! (-> v1-24 jgeo) 2) + (set! (-> v1-24 janim) -1) + (set! (-> v1-24 mgeo 0) (the-as uint 3)) + (set! (-> v1-24 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-above-skeleton-sg* v1-24) + ) + +;; failed to figure out what this is: +(let + ((v1-25 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds + (new 'static 'vector :z 16384.0 :w 102400.0) + :version #x6 + ) + ) + ) + (set! (-> v1-25 jgeo) 4) + (set! (-> v1-25 janim) -1) + (set! (-> v1-25 mgeo 0) (the-as uint 5)) + (set! (-> v1-25 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-behind-skeleton-sg* v1-25) + ) + +;; failed to figure out what this is: +(let + ((v1-26 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 57344.0) + :version #x6 + ) + ) + ) + (set! (-> v1-26 jgeo) 6) + (set! (-> v1-26 janim) -1) + (set! (-> v1-26 mgeo 0) (the-as uint 7)) + (set! (-> v1-26 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-above-skull-back-sg* v1-26) + ) + +;; failed to figure out what this is: +(let + ((v1-27 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 65536.0) + :version #x6 + ) + ) + ) + (set! (-> v1-27 jgeo) 8) + (set! (-> v1-27 janim) -1) + (set! (-> v1-27 mgeo 0) (the-as uint 9)) + (set! (-> v1-27 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-above-skull-front-sg* v1-27) + ) + +;; failed to figure out what this is: +(let + ((v1-28 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 53248.0) + :version #x6 + ) + ) + ) + (set! (-> v1-28 jgeo) 10) + (set! (-> v1-28 janim) -1) + (set! (-> v1-28 mgeo 0) (the-as uint 11)) + (set! (-> v1-28 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-other-near-skull-sg* v1-28) + ) + +;; failed to figure out what this is: +(let + ((v1-29 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 61440.0) + :version #x6 + ) + ) + ) + (set! (-> v1-29 jgeo) 12) + (set! (-> v1-29 janim) -1) + (set! (-> v1-29 mgeo 0) (the-as uint 13)) + (set! (-> v1-29 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-near-skull-sg* v1-29) + ) + +;; failed to figure out what this is: +(let + ((v1-30 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 65536.0) + :version #x6 + ) + ) + ) + (set! (-> v1-30 jgeo) 14) + (set! (-> v1-30 janim) -1) + (set! (-> v1-30 mgeo 0) (the-as uint 15)) + (set! (-> v1-30 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-under-spine-sg* v1-30) + ) + +;; failed to figure out what this is: +(let + ((v1-31 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 86016.0) + :version #x6 + ) + ) + ) + (set! (-> v1-31 jgeo) 16) + (set! (-> v1-31 janim) -1) + (set! (-> v1-31 mgeo 0) (the-as uint 17)) + (set! (-> v1-31 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-by-dock-sg* v1-31) + ) + +;; failed to figure out what this is: +(let + ((v1-32 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds + (new 'static 'vector :x -4096.0 :z -4096.0 :w 61440.0) + :version #x6 + ) + ) + ) + (set! (-> v1-32 jgeo) 18) + (set! (-> v1-32 janim) -1) + (set! (-> v1-32 mgeo 0) (the-as uint 19)) + (set! (-> v1-32 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-island-near-dock-sg* v1-32) + ) + +;; failed to figure out what this is: +(let + ((v1-33 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 40960.0) + :version #x6 + ) + ) + ) + (set! (-> v1-33 jgeo) 20) + (set! (-> v1-33 janim) -1) + (set! (-> v1-33 mgeo 0) (the-as uint 21)) + (set! (-> v1-33 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-lonely-island-sg* v1-33) + ) + +;; failed to figure out what this is: +(let + ((v1-34 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 69632.0) + :version #x6 + ) + ) + ) + (set! (-> v1-34 jgeo) 22) + (set! (-> v1-34 janim) -1) + (set! (-> v1-34 mgeo 0) (the-as uint 23)) + (set! (-> v1-34 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-dark-eco-pool-sg* v1-34) + ) + +;; failed to figure out what this is: +(let + ((v1-35 + (new 'static 'skeleton-group + :art-group-name "water-anim-ogre" + :bounds (new 'static 'vector :w 458752.0) + :version #x6 + ) + ) + ) + (set! (-> v1-35 jgeo) 0) + (set! (-> v1-35 janim) -1) + (set! (-> v1-35 mgeo 0) (the-as uint 1)) + (set! (-> v1-35 lod-dist 0) 4095996000.0) + (set! *water-anim-ogre-lava-sg* v1-35) + ) + +;; failed to figure out what this is: +(let + ((v1-36 + (new 'static 'skeleton-group + :art-group-name "water-anim-jungle" + :bounds (new 'static 'vector :w 372736.0) + :max-lod 1 + :version #x6 + ) + ) + ) + (set! (-> v1-36 jgeo) 0) + (set! (-> v1-36 janim) -1) + (set! (-> v1-36 mgeo 0) (the-as uint 1)) + (set! (-> v1-36 lod-dist 0) 81920.0) + (set! (-> v1-36 mgeo 1) (the-as uint 2)) + (set! (-> v1-36 lod-dist 1) 4095996000.0) + (set! *water-anim-jungle-river-sg* v1-36) + ) + +;; failed to figure out what this is: +(let + ((v1-37 + (new 'static 'skeleton-group + :art-group-name "water-anim-village3" + :bounds + (new 'static 'vector :x 61440.0 :z 40960.0 :w 667648.0) + :max-lod 1 + :version #x6 + ) + ) + ) + (set! (-> v1-37 jgeo) 0) + (set! (-> v1-37 janim) -1) + (set! (-> v1-37 mgeo 0) (the-as uint 1)) + (set! (-> v1-37 lod-dist 0) 81920.0) + (set! (-> v1-37 mgeo 1) (the-as uint 2)) + (set! (-> v1-37 lod-dist 1) 4095996000.0) + (set! *water-anim-village3-lava-sg* v1-37) + ) + +;; failed to figure out what this is: +(let + ((v1-38 + (new 'static 'skeleton-group + :art-group-name "water-anim-training" + :bounds + (new 'static 'vector :x -73728.0 :w 212992.0) + :version #x6 + ) + ) + ) + (set! (-> v1-38 jgeo) 0) + (set! (-> v1-38 janim) -1) + (set! (-> v1-38 mgeo 0) (the-as uint 1)) + (set! (-> v1-38 lod-dist 0) 4095996000.0) + (set! *water-anim-training-lake-sg* v1-38) + ) + +;; failed to figure out what this is: +(let + ((v1-39 + (new 'static 'skeleton-group + :art-group-name "water-anim-darkcave" + :bounds (new 'static 'vector :w 77824.0) + :version #x6 + ) + ) + ) + (set! (-> v1-39 jgeo) 0) + (set! (-> v1-39 janim) -1) + (set! (-> v1-39 mgeo 0) (the-as uint 1)) + (set! (-> v1-39 lod-dist 0) 4095996000.0) + (set! *water-anim-darkcave-water-with-crystal-sg* v1-39) + ) + +;; failed to figure out what this is: +(let + ((v1-40 + (new 'static 'skeleton-group + :art-group-name "water-anim-rolling" + :bounds + (new 'static 'vector :x -40960.0 :w 286720.0) + :version #x6 + ) + ) + ) + (set! (-> v1-40 jgeo) 0) + (set! (-> v1-40 janim) -1) + (set! (-> v1-40 mgeo 0) (the-as uint 1)) + (set! (-> v1-40 lod-dist 0) 4095996000.0) + (set! *water-anim-rolling-water-back-sg* v1-40) + ) + +;; failed to figure out what this is: +(let + ((v1-41 + (new 'static 'skeleton-group + :art-group-name "water-anim-rolling" + :bounds (new 'static 'vector :w 286720.0) + :version #x6 + ) + ) + ) + (set! (-> v1-41 jgeo) 2) + (set! (-> v1-41 janim) -1) + (set! (-> v1-41 mgeo 0) (the-as uint 3)) + (set! (-> v1-41 lod-dist 0) 4095996000.0) + (set! *water-anim-rolling-water-front-sg* v1-41) + ) + +;; failed to figure out what this is: +(let + ((v1-42 + (new 'static 'skeleton-group + :art-group-name "water-anim-finalboss" + :bounds (new 'static 'vector :w 77824.0) + :version #x6 + ) + ) + ) + (set! (-> v1-42 jgeo) 0) + (set! (-> v1-42 janim) -1) + (set! (-> v1-42 mgeo 0) (the-as uint 1)) + (set! (-> v1-42 lod-dist 0) 4095996000.0) + (set! *water-anim-finalboss-dark-eco-pool-sg* v1-42) + ) + +;; failed to figure out what this is: +(let + ((v1-43 + (new 'static 'skeleton-group + :art-group-name "water-anim-lavatube" + :bounds + (new 'static 'vector :y -28672.0 :w 102400.0) + :version #x6 + ) + ) + ) + (set! (-> v1-43 jgeo) 0) + (set! (-> v1-43 janim) -1) + (set! (-> v1-43 mgeo 0) (the-as uint 1)) + (set! (-> v1-43 lod-dist 0) 4095996000.0) + (set! *water-anim-lavatube-energy-lava-sg* v1-43) + ) + +;; failed to figure out what this is: +(let + ((v1-44 + (new 'static 'skeleton-group + :art-group-name "water-anim-village1" + :bounds + (new 'static 'vector :x -61440.0 :w 110592.0) + :version #x6 + ) + ) + ) + (set! (-> v1-44 jgeo) 0) + (set! (-> v1-44 janim) -1) + (set! (-> v1-44 mgeo 0) (the-as uint 1)) + (set! (-> v1-44 lod-dist 0) 4095996000.0) + (set! *water-anim-village1-rice-paddy-sg* v1-44) + ) + +;; failed to figure out what this is: +(let + ((v1-45 + (new 'static 'skeleton-group + :art-group-name "water-anim-village1" + :bounds (new 'static 'vector :w 18432.0) + :version #x6 + ) + ) + ) + (set! (-> v1-45 jgeo) 6) + (set! (-> v1-45 janim) -1) + (set! (-> v1-45 mgeo 0) (the-as uint 7)) + (set! (-> v1-45 lod-dist 0) 4095996000.0) + (set! *water-anim-village1-fountain-sg* v1-45) + ) + +;; failed to figure out what this is: +(let + ((v1-46 + (new 'static 'skeleton-group + :art-group-name "water-anim-village1" + :bounds (new 'static 'vector :w 143360.0) + :version #x6 + ) + ) + ) + (set! (-> v1-46 jgeo) 2) + (set! (-> v1-46 janim) -1) + (set! (-> v1-46 mgeo 0) (the-as uint 3)) + (set! (-> v1-46 lod-dist 0) 4095996000.0) + (set! *water-anim-village1-rice-paddy-mid-sg* v1-46) + ) + +;; failed to figure out what this is: +(let + ((v1-47 + (new 'static 'skeleton-group + :art-group-name "water-anim-village1" + :bounds + (new 'static 'vector :x 24576.0 :z -69632.0 :w 81920.0) + :version #x6 + ) + ) + ) + (set! (-> v1-47 jgeo) 4) + (set! (-> v1-47 janim) -1) + (set! (-> v1-47 mgeo 0) (the-as uint 5)) + (set! (-> v1-47 lod-dist 0) 4095996000.0) + (set! *water-anim-village1-rice-paddy-top-sg* v1-47) + ) + +;; failed to figure out what this is: +(let + ((v1-48 + (new 'static 'skeleton-group + :art-group-name "water-anim-village2" + :bounds (new 'static 'vector :w 2867.2) + :version #x6 + ) + ) + ) + (set! (-> v1-48 jgeo) 0) + (set! (-> v1-48 janim) -1) + (set! (-> v1-48 mgeo 0) (the-as uint 1)) + (set! (-> v1-48 lod-dist 0) 4095996000.0) + (set! *water-anim-village2-bucket-sg* v1-48) + ) + +;; definition of type water-anim-look +(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 + ) + +;; definition for method 3 of type water-anim-look +(defmethod inspect water-anim-look ((obj water-anim-look)) + (format #t "[~8x] ~A~%" obj 'water-anim-look) + (format #t "~Tskel-group: ~A~%" (-> obj skel-group)) + (format #t "~Tanim: ~D~%" (-> obj anim)) + (format #t "~Tambient-sound-spec: ~A~%" (-> obj ambient-sound-spec)) + obj + ) + +;; definition for symbol *water-anim-look*, type (array water-anim-look) +(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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x68 + #x65 + #x6c + #x69 + #x78 + #x2d + #x64 + #x61 + #x72 + #x6b + #x2d + #x65 + #x63 + #x6f + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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 + ) + ) + ) + ) + +;; failed to figure out what this is: +(let + ((gp-0 + (new 'static 'state + :name 'water-vol-idle + :next #f + :exit #f + :code #f + :trans #f + :post #f + :enter #f + :event #f + ) + ) + ) + (inherit-state gp-0 (the-as state (method-of-type water-vol water-vol-idle))) + (method-set! water-anim 20 (the-as function gp-0)) + (set! + (-> gp-0 event) + (lambda :behavior water-anim + ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (case arg2 + (('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 + ) + ) + ) + ) + ) + (set! + (-> gp-0 trans) + (the-as + (function object) + (lambda :behavior water-anim + () + (let + ((t9-0 + (-> + (the-as (state none) (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) 2) + (set! (-> self draw status) (logand -3 (-> self draw status))) + ) + (if (and (-> self play-ambient-sound?) (nonzero? (-> self sound))) + (update! (-> self sound)) + ) + (none) + ) + ) + ) + (set! (-> gp-0 code) (lambda :behavior water-anim () (while #t + (ja-post) + (logior! + (-> self mask) + (process-mask + sleep-code + ) + ) + (suspend) + ) + (none) + ) + ) + ) + +;; definition for method 28 of type water-anim +(defmethod get-ripple-height water-anim ((obj water-anim) (arg0 vector)) + (ripple-find-height obj 0 arg0) + ) + +;; definition for method 24 of type water-anim +;; INFO: Return type mismatch symbol vs none. +(defmethod dummy-24 water-anim () + (none) + ) + +;; definition for method 25 of type water-anim +;; Used lq/sq +(defmethod TODO-RENAME-25 water-anim ((obj water-anim)) + (local-vars (sv-16 int)) + (set! (-> obj play-ambient-sound?) #t) + (set! + (-> obj look) + (the-as + int + ((method-of-type res-lump get-property-value) + (-> obj entity) + 'look + 'interp + -1000000000.0 + (the-as uint128 -1) + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + ) + (set! sv-16 0) + (let + ((v1-3 + (the-as + object + ((method-of-type res-lump get-property-data) + (-> obj entity) + 'trans-offset + 'interp + -1000000000.0 + (the-as pointer #f) + (the-as (pointer res-tag) (& sv-16)) + *res-static-buf* + ) + ) + ) + ) + (when (the-as pointer v1-3) + (+! (-> obj root trans x) (-> (the-as transform v1-3) trans x)) + (+! (-> obj root trans y) (-> (the-as transform v1-3) trans y)) + (set! + (-> (the-as transform (-> obj root)) rot y) + (+ (-> obj root trans z) (-> (the-as transform v1-3) trans z)) + ) + ) + ) + (let + ((f0-6 + ((method-of-type res-lump get-property-value-float) + (-> obj entity) + 'rotoffset + 'interp + -1000000000.0 + 0.0 + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + ) + (if (!= f0-6 0.0) + (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) f0-6) + ) + ) + ) + +;; definition for method 22 of type water-anim +;; INFO: Return type mismatch int vs none. +(defmethod TODO-RENAME-22 water-anim ((obj water-anim)) + (with-pp + (let ((s5-0 (-> obj look))) + (when (or (< s5-0 0) (>= s5-0 (-> *water-anim-look* length))) + (let ((t9-0 (the-as (function object object) enter-state)) + (a0-2 "skel group") + ) + (set! (-> pp next-state) process-drawable-art-error) + (t9-0 a0-2) + ) + ) + (let ((s5-1 (-> *water-anim-look* s5-0))) + (let ((s4-0 (-> s5-1 skel-group value))) + (let ((s3-0 s4-0)) + (when + (not + (if + (and + (nonzero? s3-0) + (type-type? (-> (the-as basic s3-0) type) skeleton-group) + ) + s3-0 + ) + ) + (let ((t9-2 (the-as (function object object) enter-state)) + (a0-5 "skel group") + ) + (set! (-> pp next-state) process-drawable-art-error) + (t9-2 a0-5) + ) + ) + ) + (dummy-14 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) + ) + ) diff --git a/test/decompiler/reference/engine/gfx/ripple_REF.gc b/test/decompiler/reference/engine/gfx/ripple_REF.gc index 52eb3e8350..705af4b35b 100644 --- a/test/decompiler/reference/engine/gfx/ripple_REF.gc +++ b/test/decompiler/reference/engine/gfx/ripple_REF.gc @@ -183,7 +183,7 @@ ) ;; definition for function ripple-find-height -(defun ripple-find-height ((arg0 process-drawable) (arg1 basic) (arg2 vector)) +(defun ripple-find-height ((arg0 process-drawable) (arg1 int) (arg2 vector)) (local-vars (sv-16 float) (sv-32 float)) (let* ((f30-0 (-> arg0 root trans y)) (v1-1 (-> arg0 draw)) diff --git a/test/decompiler/reference/engine/gfx/water/water-h_REF.gc b/test/decompiler/reference/engine/gfx/water/water-h_REF.gc index 7029471268..a81318caa8 100644 --- a/test/decompiler/reference/engine/gfx/water/water-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/water/water-h_REF.gc @@ -151,13 +151,13 @@ (:methods (water-vol-idle () none 20) (water-vol-startup () none 21) - (dummy-22 () none 22) + (TODO-RENAME-22 (_type_) none 22) (dummy-23 () none 23) (dummy-24 () none 24) - (dummy-25 () none 25) + (TODO-RENAME-25 (_type_) quaternion 25) (dummy-26 () none 26) (dummy-27 () none 27) - (dummy-28 () none 28) + (get-ripple-height (_type_ vector) float 28) (dummy-29 () none 29) ) ) diff --git a/test/decompiler/reference/levels/common/rigid-body-h_REF.gc b/test/decompiler/reference/levels/common/rigid-body-h_REF.gc index ae06d1e47b..b2fe45bf16 100644 --- a/test/decompiler/reference/levels/common/rigid-body-h_REF.gc +++ b/test/decompiler/reference/levels/common/rigid-body-h_REF.gc @@ -27,20 +27,20 @@ :size-assert #x1a8 :flag-assert #x17000001a8 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) + (TODO-RENAME-9 (_type_ float float float float) none 9) + (dummy-10 (_type_ float) none 10) + (clear-force-torque! (_type_) none 11) + (clear-momentum! (_type_) none 12) + (TODO-RENAME-13 (_type_ vector vector) none 13) + (TODO-RENAME-14 (_type_ vector vector) none 14) + (TODO-RENAME-15 (_type_ vector) none 15) + (TODO-RENAME-16 (_type_ vector vector float) none 16) + (TODO-RENAME-17 (_type_ vector vector) vector 17) + (TODO-RENAME-18 (_type_ vector) vector 18) + (dummy-19 (_type_) none 19) + (dummy-20 (_type_) none 20) + (TODO-RENAME-21 (_type_) none 21) + (TODO-RENAME-22 (_type_ vector quaternion float float) none 22) ) ) diff --git a/test/decompiler/reference/levels/common/water-anim_REF.gc b/test/decompiler/reference/levels/common/water-anim_REF.gc new file mode 100644 index 0000000000..6c584bc949 --- /dev/null +++ b/test/decompiler/reference/levels/common/water-anim_REF.gc @@ -0,0 +1,2001 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type water-anim +(deftype water-anim (water-vol) + ((ppointer-water-anim (pointer water-anim) :offset 24) + (look int32 :offset-assert 212) + (play-ambient-sound? basic :offset-assert 216) + ) + :heap-base #x70 + :method-count-assert 30 + :size-assert #xdc + :flag-assert #x1e007000dc + ) + +;; definition for method 3 of type water-anim +(defmethod inspect water-anim ((obj water-anim)) + (let ((t9-0 (method-of-type water-vol inspect))) + (t9-0 obj) + ) + (format #t "~T~Tlook: ~D~%" (-> obj look)) + (format #t "~T~Tplay-ambient-sound?: ~A~%" (-> obj play-ambient-sound?)) + obj + ) + +;; failed to figure out what this is: +(let + ((v1-1 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken-dark-eco" + :bounds (new 'static 'vector :w 163840.0) + :version #x6 + ) + ) + ) + (set! (-> v1-1 jgeo) 0) + (set! (-> v1-1 janim) -1) + (set! (-> v1-1 mgeo 0) (the-as uint 1)) + (set! (-> v1-1 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-dark-eco-qbert-sg* v1-1) + ) + +;; failed to figure out what this is: +(let + ((v1-2 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken-dark-eco" + :bounds (new 'static 'vector :w 90112.0) + :version #x6 + ) + ) + ) + (set! (-> v1-2 jgeo) 2) + (set! (-> v1-2 janim) -1) + (set! (-> v1-2 mgeo 0) (the-as uint 3)) + (set! (-> v1-2 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-dark-eco-platform-room-sg* v1-2) + ) + +;; failed to figure out what this is: +(let + ((v1-3 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken-dark-eco" + :bounds (new 'static 'vector :w 86016.0) + :version #x6 + ) + ) + ) + (set! (-> v1-3 jgeo) 4) + (set! (-> v1-3 janim) -1) + (set! (-> v1-3 mgeo 0) (the-as uint 5)) + (set! (-> v1-3 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-dark-eco-helix-room-sg* v1-3) + ) + +;; failed to figure out what this is: +(let + ((v1-4 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds + (new 'static 'vector :x 61440.0 :z -147456.0 :w 286720.0) + :version #x6 + ) + ) + ) + (set! (-> v1-4 jgeo) 0) + (set! (-> v1-4 janim) -1) + (set! (-> v1-4 mgeo 0) (the-as uint 1)) + (set! (-> v1-4 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-big-room-sg* v1-4) + ) + +;; failed to figure out what this is: +(let + ((v1-5 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 204800.0) + :version #x6 + ) + ) + ) + (set! (-> v1-5 jgeo) 2) + (set! (-> v1-5 janim) -1) + (set! (-> v1-5 mgeo 0) (the-as uint 3)) + (set! (-> v1-5 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-first-room-from-entrance-sg* v1-5) + ) + +;; failed to figure out what this is: +(let + ((v1-6 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 196608.0) + :version #x6 + ) + ) + ) + (set! (-> v1-6 jgeo) 4) + (set! (-> v1-6 janim) -1) + (set! (-> v1-6 mgeo 0) (the-as uint 5)) + (set! (-> v1-6 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-qbert-room-sg* v1-6) + ) + +;; failed to figure out what this is: +(let + ((v1-7 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 122880.0) + :version #x6 + ) + ) + ) + (set! (-> v1-7 jgeo) 6) + (set! (-> v1-7 janim) -1) + (set! (-> v1-7 mgeo 0) (the-as uint 7)) + (set! (-> v1-7 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-first-right-branch-sg* v1-7) + ) + +;; failed to figure out what this is: +(let + ((v1-8 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 61440.0) + :version #x6 + ) + ) + ) + (set! (-> v1-8 jgeo) 8) + (set! (-> v1-8 janim) -1) + (set! (-> v1-8 mgeo 0) (the-as uint 9)) + (set! (-> v1-8 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-circular-with-bullys-sg* v1-8) + ) + +;; failed to figure out what this is: +(let + ((v1-9 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 110592.0) + :version #x6 + ) + ) + ) + (set! (-> v1-9 jgeo) 10) + (set! (-> v1-9 janim) -1) + (set! (-> v1-9 mgeo 0) (the-as uint 11)) + (set! (-> v1-9 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-hall-with-one-whirlpool-sg* v1-9) + ) + +;; failed to figure out what this is: +(let + ((v1-10 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 106496.0) + :version #x6 + ) + ) + ) + (set! (-> v1-10 jgeo) 12) + (set! (-> v1-10 janim) -1) + (set! (-> v1-10 mgeo 0) (the-as uint 13)) + (set! (-> v1-10 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-hall-with-three-whirlpools-sg* v1-10) + ) + +;; failed to figure out what this is: +(let + ((v1-11 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 102400.0) + :version #x6 + ) + ) + ) + (set! (-> v1-11 jgeo) 14) + (set! (-> v1-11 janim) -1) + (set! (-> v1-11 mgeo 0) (the-as uint 15)) + (set! (-> v1-11 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-start-of-helix-slide-sg* v1-11) + ) + +;; failed to figure out what this is: +(let + ((v1-12 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 184320.0) + :version #x6 + ) + ) + ) + (set! (-> v1-12 jgeo) 16) + (set! (-> v1-12 janim) -1) + (set! (-> v1-12 mgeo 0) (the-as uint 17)) + (set! (-> v1-12 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-room-above-exit-chamber-sg* v1-12) + ) + +;; failed to figure out what this is: +(let + ((v1-13 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds + (new 'static 'vector :x 20480.0 :z -12288.0 :w 98304.0) + :version #x6 + ) + ) + ) + (set! (-> v1-13 jgeo) 18) + (set! (-> v1-13 janim) -1) + (set! (-> v1-13 mgeo 0) (the-as uint 19)) + (set! (-> v1-13 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-hall-before-big-room-sg* v1-13) + ) + +;; failed to figure out what this is: +(let + ((v1-14 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 81920.0) + :version #x6 + ) + ) + ) + (set! (-> v1-14 jgeo) 20) + (set! (-> v1-14 janim) -1) + (set! (-> v1-14 mgeo 0) (the-as uint 21)) + (set! (-> v1-14 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-short-piece-sg* v1-14) + ) + +;; failed to figure out what this is: +(let + ((v1-15 + (new 'static 'skeleton-group + :art-group-name "water-anim-sunken" + :bounds (new 'static 'vector :w 110592.0) + :version #x6 + ) + ) + ) + (set! (-> v1-15 jgeo) 22) + (set! (-> v1-15 janim) -1) + (set! (-> v1-15 mgeo 0) (the-as uint 23)) + (set! (-> v1-15 lod-dist 0) 4095996000.0) + (set! *water-anim-sunken-big-room-upper-water-sg* v1-15) + ) + +;; failed to figure out what this is: +(let + ((v1-16 + (new 'static 'skeleton-group + :art-group-name "water-anim-maincave" + :bounds (new 'static 'vector :w 286720.0) + :version #x6 + ) + ) + ) + (set! (-> v1-16 jgeo) 0) + (set! (-> v1-16 janim) -1) + (set! (-> v1-16 mgeo 0) (the-as uint 1)) + (set! (-> v1-16 lod-dist 0) 4095996000.0) + (set! *water-anim-maincave-center-pool-sg* v1-16) + ) + +;; failed to figure out what this is: +(let + ((v1-17 + (new 'static 'skeleton-group + :art-group-name "water-anim-maincave" + :bounds + (new 'static 'vector :x 24576.0 :z 20480.0 :w 249856.0) + :version #x6 + ) + ) + ) + (set! (-> v1-17 jgeo) 2) + (set! (-> v1-17 janim) -1) + (set! (-> v1-17 mgeo 0) (the-as uint 3)) + (set! (-> v1-17 lod-dist 0) 4095996000.0) + (set! *water-anim-maincave-lower-right-pool-sg* v1-17) + ) + +;; failed to figure out what this is: +(let + ((v1-18 + (new 'static 'skeleton-group + :art-group-name "water-anim-maincave" + :bounds (new 'static 'vector :w 151552.0) + :version #x6 + ) + ) + ) + (set! (-> v1-18 jgeo) 4) + (set! (-> v1-18 janim) -1) + (set! (-> v1-18 mgeo 0) (the-as uint 5)) + (set! (-> v1-18 lod-dist 0) 4095996000.0) + (set! *water-anim-maincave-mid-right-pool-sg* v1-18) + ) + +;; failed to figure out what this is: +(let + ((v1-19 + (new 'static 'skeleton-group + :art-group-name "water-anim-maincave" + :bounds + (new 'static 'vector :x -4096.0 :w 81920.0) + :version #x6 + ) + ) + ) + (set! (-> v1-19 jgeo) 6) + (set! (-> v1-19 janim) -1) + (set! (-> v1-19 mgeo 0) (the-as uint 7)) + (set! (-> v1-19 lod-dist 0) 4095996000.0) + (set! *water-anim-maincave-lower-left-pool-sg* v1-19) + ) + +;; failed to figure out what this is: +(let + ((v1-20 + (new 'static 'skeleton-group + :art-group-name "water-anim-maincave" + :bounds (new 'static 'vector :w 208896.0) + :version #x6 + ) + ) + ) + (set! (-> v1-20 jgeo) 8) + (set! (-> v1-20 janim) -1) + (set! (-> v1-20 mgeo 0) (the-as uint 9)) + (set! (-> v1-20 lod-dist 0) 4095996000.0) + (set! *water-anim-maincave-mid-left-pool-sg* v1-20) + ) + +;; failed to figure out what this is: +(let + ((v1-21 + (new 'static 'skeleton-group + :art-group-name "water-anim-maincave-water" + :bounds + (new 'static 'vector :z -12288.0 :w 90112.0) + :version #x6 + ) + ) + ) + (set! (-> v1-21 jgeo) 0) + (set! (-> v1-21 janim) -1) + (set! (-> v1-21 mgeo 0) (the-as uint 1)) + (set! (-> v1-21 lod-dist 0) 4095996000.0) + (set! *water-anim-maincave-water-with-crystal-sg* v1-21) + ) + +;; failed to figure out what this is: +(let + ((v1-22 + (new 'static 'skeleton-group + :art-group-name "water-anim-robocave" + :bounds (new 'static 'vector :w 221184.0) + :max-lod 1 + :version #x6 + ) + ) + ) + (set! (-> v1-22 jgeo) 0) + (set! (-> v1-22 janim) -1) + (set! (-> v1-22 mgeo 0) (the-as uint 1)) + (set! (-> v1-22 lod-dist 0) 81920.0) + (set! (-> v1-22 mgeo 1) (the-as uint 2)) + (set! (-> v1-22 lod-dist 1) 4095996000.0) + (set! *water-anim-robocave-main-pool-sg* v1-22) + ) + +;; failed to figure out what this is: +(let + ((v1-23 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds + (new 'static 'vector :z -10240.0 :w 77824.0) + :version #x6 + ) + ) + ) + (set! (-> v1-23 jgeo) 0) + (set! (-> v1-23 janim) -1) + (set! (-> v1-23 mgeo 0) (the-as uint 1)) + (set! (-> v1-23 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-by-arena-sg* v1-23) + ) + +;; failed to figure out what this is: +(let + ((v1-24 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 57344.0) + :version #x6 + ) + ) + ) + (set! (-> v1-24 jgeo) 2) + (set! (-> v1-24 janim) -1) + (set! (-> v1-24 mgeo 0) (the-as uint 3)) + (set! (-> v1-24 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-above-skeleton-sg* v1-24) + ) + +;; failed to figure out what this is: +(let + ((v1-25 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds + (new 'static 'vector :z 16384.0 :w 102400.0) + :version #x6 + ) + ) + ) + (set! (-> v1-25 jgeo) 4) + (set! (-> v1-25 janim) -1) + (set! (-> v1-25 mgeo 0) (the-as uint 5)) + (set! (-> v1-25 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-behind-skeleton-sg* v1-25) + ) + +;; failed to figure out what this is: +(let + ((v1-26 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 57344.0) + :version #x6 + ) + ) + ) + (set! (-> v1-26 jgeo) 6) + (set! (-> v1-26 janim) -1) + (set! (-> v1-26 mgeo 0) (the-as uint 7)) + (set! (-> v1-26 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-above-skull-back-sg* v1-26) + ) + +;; failed to figure out what this is: +(let + ((v1-27 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 65536.0) + :version #x6 + ) + ) + ) + (set! (-> v1-27 jgeo) 8) + (set! (-> v1-27 janim) -1) + (set! (-> v1-27 mgeo 0) (the-as uint 9)) + (set! (-> v1-27 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-above-skull-front-sg* v1-27) + ) + +;; failed to figure out what this is: +(let + ((v1-28 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 53248.0) + :version #x6 + ) + ) + ) + (set! (-> v1-28 jgeo) 10) + (set! (-> v1-28 janim) -1) + (set! (-> v1-28 mgeo 0) (the-as uint 11)) + (set! (-> v1-28 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-other-near-skull-sg* v1-28) + ) + +;; failed to figure out what this is: +(let + ((v1-29 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 61440.0) + :version #x6 + ) + ) + ) + (set! (-> v1-29 jgeo) 12) + (set! (-> v1-29 janim) -1) + (set! (-> v1-29 mgeo 0) (the-as uint 13)) + (set! (-> v1-29 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-near-skull-sg* v1-29) + ) + +;; failed to figure out what this is: +(let + ((v1-30 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 65536.0) + :version #x6 + ) + ) + ) + (set! (-> v1-30 jgeo) 14) + (set! (-> v1-30 janim) -1) + (set! (-> v1-30 mgeo 0) (the-as uint 15)) + (set! (-> v1-30 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-under-spine-sg* v1-30) + ) + +;; failed to figure out what this is: +(let + ((v1-31 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 86016.0) + :version #x6 + ) + ) + ) + (set! (-> v1-31 jgeo) 16) + (set! (-> v1-31 janim) -1) + (set! (-> v1-31 mgeo 0) (the-as uint 17)) + (set! (-> v1-31 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-by-dock-sg* v1-31) + ) + +;; failed to figure out what this is: +(let + ((v1-32 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds + (new 'static 'vector :x -4096.0 :z -4096.0 :w 61440.0) + :version #x6 + ) + ) + ) + (set! (-> v1-32 jgeo) 18) + (set! (-> v1-32 janim) -1) + (set! (-> v1-32 mgeo 0) (the-as uint 19)) + (set! (-> v1-32 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-island-near-dock-sg* v1-32) + ) + +;; failed to figure out what this is: +(let + ((v1-33 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 40960.0) + :version #x6 + ) + ) + ) + (set! (-> v1-33 jgeo) 20) + (set! (-> v1-33 janim) -1) + (set! (-> v1-33 mgeo 0) (the-as uint 21)) + (set! (-> v1-33 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-mud-lonely-island-sg* v1-33) + ) + +;; failed to figure out what this is: +(let + ((v1-34 + (new 'static 'skeleton-group + :art-group-name "water-anim-misty" + :bounds (new 'static 'vector :w 69632.0) + :version #x6 + ) + ) + ) + (set! (-> v1-34 jgeo) 22) + (set! (-> v1-34 janim) -1) + (set! (-> v1-34 mgeo 0) (the-as uint 23)) + (set! (-> v1-34 lod-dist 0) 4095996000.0) + (set! *water-anim-misty-dark-eco-pool-sg* v1-34) + ) + +;; failed to figure out what this is: +(let + ((v1-35 + (new 'static 'skeleton-group + :art-group-name "water-anim-ogre" + :bounds (new 'static 'vector :w 458752.0) + :version #x6 + ) + ) + ) + (set! (-> v1-35 jgeo) 0) + (set! (-> v1-35 janim) -1) + (set! (-> v1-35 mgeo 0) (the-as uint 1)) + (set! (-> v1-35 lod-dist 0) 4095996000.0) + (set! *water-anim-ogre-lava-sg* v1-35) + ) + +;; failed to figure out what this is: +(let + ((v1-36 + (new 'static 'skeleton-group + :art-group-name "water-anim-jungle" + :bounds (new 'static 'vector :w 372736.0) + :max-lod 1 + :version #x6 + ) + ) + ) + (set! (-> v1-36 jgeo) 0) + (set! (-> v1-36 janim) -1) + (set! (-> v1-36 mgeo 0) (the-as uint 1)) + (set! (-> v1-36 lod-dist 0) 81920.0) + (set! (-> v1-36 mgeo 1) (the-as uint 2)) + (set! (-> v1-36 lod-dist 1) 4095996000.0) + (set! *water-anim-jungle-river-sg* v1-36) + ) + +;; failed to figure out what this is: +(let + ((v1-37 + (new 'static 'skeleton-group + :art-group-name "water-anim-village3" + :bounds + (new 'static 'vector :x 61440.0 :z 40960.0 :w 667648.0) + :max-lod 1 + :version #x6 + ) + ) + ) + (set! (-> v1-37 jgeo) 0) + (set! (-> v1-37 janim) -1) + (set! (-> v1-37 mgeo 0) (the-as uint 1)) + (set! (-> v1-37 lod-dist 0) 81920.0) + (set! (-> v1-37 mgeo 1) (the-as uint 2)) + (set! (-> v1-37 lod-dist 1) 4095996000.0) + (set! *water-anim-village3-lava-sg* v1-37) + ) + +;; failed to figure out what this is: +(let + ((v1-38 + (new 'static 'skeleton-group + :art-group-name "water-anim-training" + :bounds + (new 'static 'vector :x -73728.0 :w 212992.0) + :version #x6 + ) + ) + ) + (set! (-> v1-38 jgeo) 0) + (set! (-> v1-38 janim) -1) + (set! (-> v1-38 mgeo 0) (the-as uint 1)) + (set! (-> v1-38 lod-dist 0) 4095996000.0) + (set! *water-anim-training-lake-sg* v1-38) + ) + +;; failed to figure out what this is: +(let + ((v1-39 + (new 'static 'skeleton-group + :art-group-name "water-anim-darkcave" + :bounds (new 'static 'vector :w 77824.0) + :version #x6 + ) + ) + ) + (set! (-> v1-39 jgeo) 0) + (set! (-> v1-39 janim) -1) + (set! (-> v1-39 mgeo 0) (the-as uint 1)) + (set! (-> v1-39 lod-dist 0) 4095996000.0) + (set! *water-anim-darkcave-water-with-crystal-sg* v1-39) + ) + +;; failed to figure out what this is: +(let + ((v1-40 + (new 'static 'skeleton-group + :art-group-name "water-anim-rolling" + :bounds + (new 'static 'vector :x -40960.0 :w 286720.0) + :version #x6 + ) + ) + ) + (set! (-> v1-40 jgeo) 0) + (set! (-> v1-40 janim) -1) + (set! (-> v1-40 mgeo 0) (the-as uint 1)) + (set! (-> v1-40 lod-dist 0) 4095996000.0) + (set! *water-anim-rolling-water-back-sg* v1-40) + ) + +;; failed to figure out what this is: +(let + ((v1-41 + (new 'static 'skeleton-group + :art-group-name "water-anim-rolling" + :bounds (new 'static 'vector :w 286720.0) + :version #x6 + ) + ) + ) + (set! (-> v1-41 jgeo) 2) + (set! (-> v1-41 janim) -1) + (set! (-> v1-41 mgeo 0) (the-as uint 3)) + (set! (-> v1-41 lod-dist 0) 4095996000.0) + (set! *water-anim-rolling-water-front-sg* v1-41) + ) + +;; failed to figure out what this is: +(let + ((v1-42 + (new 'static 'skeleton-group + :art-group-name "water-anim-finalboss" + :bounds (new 'static 'vector :w 77824.0) + :version #x6 + ) + ) + ) + (set! (-> v1-42 jgeo) 0) + (set! (-> v1-42 janim) -1) + (set! (-> v1-42 mgeo 0) (the-as uint 1)) + (set! (-> v1-42 lod-dist 0) 4095996000.0) + (set! *water-anim-finalboss-dark-eco-pool-sg* v1-42) + ) + +;; failed to figure out what this is: +(let + ((v1-43 + (new 'static 'skeleton-group + :art-group-name "water-anim-lavatube" + :bounds + (new 'static 'vector :y -28672.0 :w 102400.0) + :version #x6 + ) + ) + ) + (set! (-> v1-43 jgeo) 0) + (set! (-> v1-43 janim) -1) + (set! (-> v1-43 mgeo 0) (the-as uint 1)) + (set! (-> v1-43 lod-dist 0) 4095996000.0) + (set! *water-anim-lavatube-energy-lava-sg* v1-43) + ) + +;; failed to figure out what this is: +(let + ((v1-44 + (new 'static 'skeleton-group + :art-group-name "water-anim-village1" + :bounds + (new 'static 'vector :x -61440.0 :w 110592.0) + :version #x6 + ) + ) + ) + (set! (-> v1-44 jgeo) 0) + (set! (-> v1-44 janim) -1) + (set! (-> v1-44 mgeo 0) (the-as uint 1)) + (set! (-> v1-44 lod-dist 0) 4095996000.0) + (set! *water-anim-village1-rice-paddy-sg* v1-44) + ) + +;; failed to figure out what this is: +(let + ((v1-45 + (new 'static 'skeleton-group + :art-group-name "water-anim-village1" + :bounds (new 'static 'vector :w 18432.0) + :version #x6 + ) + ) + ) + (set! (-> v1-45 jgeo) 6) + (set! (-> v1-45 janim) -1) + (set! (-> v1-45 mgeo 0) (the-as uint 7)) + (set! (-> v1-45 lod-dist 0) 4095996000.0) + (set! *water-anim-village1-fountain-sg* v1-45) + ) + +;; failed to figure out what this is: +(let + ((v1-46 + (new 'static 'skeleton-group + :art-group-name "water-anim-village1" + :bounds (new 'static 'vector :w 143360.0) + :version #x6 + ) + ) + ) + (set! (-> v1-46 jgeo) 2) + (set! (-> v1-46 janim) -1) + (set! (-> v1-46 mgeo 0) (the-as uint 3)) + (set! (-> v1-46 lod-dist 0) 4095996000.0) + (set! *water-anim-village1-rice-paddy-mid-sg* v1-46) + ) + +;; failed to figure out what this is: +(let + ((v1-47 + (new 'static 'skeleton-group + :art-group-name "water-anim-village1" + :bounds + (new 'static 'vector :x 24576.0 :z -69632.0 :w 81920.0) + :version #x6 + ) + ) + ) + (set! (-> v1-47 jgeo) 4) + (set! (-> v1-47 janim) -1) + (set! (-> v1-47 mgeo 0) (the-as uint 5)) + (set! (-> v1-47 lod-dist 0) 4095996000.0) + (set! *water-anim-village1-rice-paddy-top-sg* v1-47) + ) + +;; failed to figure out what this is: +(let + ((v1-48 + (new 'static 'skeleton-group + :art-group-name "water-anim-village2" + :bounds (new 'static 'vector :w 2867.2) + :version #x6 + ) + ) + ) + (set! (-> v1-48 jgeo) 0) + (set! (-> v1-48 janim) -1) + (set! (-> v1-48 mgeo 0) (the-as uint 1)) + (set! (-> v1-48 lod-dist 0) 4095996000.0) + (set! *water-anim-village2-bucket-sg* v1-48) + ) + +;; definition of type water-anim-look +(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 + ) + +;; definition for method 3 of type water-anim-look +(defmethod inspect water-anim-look ((obj water-anim-look)) + (format #t "[~8x] ~A~%" obj 'water-anim-look) + (format #t "~Tskel-group: ~A~%" (-> obj skel-group)) + (format #t "~Tanim: ~D~%" (-> obj anim)) + (format #t "~Tambient-sound-spec: ~A~%" (-> obj ambient-sound-spec)) + obj + ) + +;; definition for symbol *water-anim-look*, type (array water-anim-look) +(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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x77 + #x61 + #x74 + #x65 + #x72 + #x2d + #x6c + #x6f + #x6f + #x70 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x68 + #x65 + #x6c + #x69 + #x78 + #x2d + #x64 + #x61 + #x72 + #x6b + #x2d + #x65 + #x63 + #x6f + #x0 + #x0 + ) + :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-char + (new 'static 'array uint8 16 + #x64 + #x61 + #x72 + #x6b + #x65 + #x63 + #x6f + #x2d + #x70 + #x6f + #x6f + #x6c + #x0 + #x0 + #x0 + #x0 + ) + :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 + ) + ) + ) + ) + +;; failed to figure out what this is: +(let + ((gp-0 + (new 'static 'state + :name 'water-vol-idle + :next #f + :exit #f + :code #f + :trans #f + :post #f + :enter #f + :event #f + ) + ) + ) + (inherit-state gp-0 (the-as state (method-of-type water-vol water-vol-idle))) + (method-set! water-anim 20 (the-as function gp-0)) + (set! + (-> gp-0 event) + (lambda :behavior water-anim + ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (case arg2 + (('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 + ) + ) + ) + ) + ) + (set! + (-> gp-0 trans) + (the-as + (function object) + (lambda :behavior water-anim + () + (let + ((t9-0 + (-> + (the-as (state none) (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) 2) + (set! (-> self draw status) (logand -3 (-> self draw status))) + ) + (if (and (-> self play-ambient-sound?) (nonzero? (-> self sound))) + (update! (-> self sound)) + ) + (none) + ) + ) + ) + (set! (-> gp-0 code) (lambda :behavior water-anim () (while #t + (ja-post) + (logior! + (-> self mask) + (process-mask + sleep-code + ) + ) + (suspend) + ) + (none) + ) + ) + ) + +;; definition for method 28 of type water-anim +(defmethod get-ripple-height water-anim ((obj water-anim) (arg0 vector)) + (ripple-find-height obj 0 arg0) + ) + +;; definition for method 24 of type water-anim +;; INFO: Return type mismatch symbol vs none. +(defmethod dummy-24 water-anim () + (none) + ) + +;; definition for method 25 of type water-anim +;; Used lq/sq +(defmethod TODO-RENAME-25 water-anim ((obj water-anim)) + (local-vars (sv-16 int)) + (set! (-> obj play-ambient-sound?) #t) + (set! + (-> obj look) + (the-as + int + ((method-of-type res-lump get-property-value) + (-> obj entity) + 'look + 'interp + -1000000000.0 + (the-as uint128 -1) + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + ) + (set! sv-16 0) + (let + ((v1-3 + (the-as + object + ((method-of-type res-lump get-property-data) + (-> obj entity) + 'trans-offset + 'interp + -1000000000.0 + (the-as pointer #f) + (the-as (pointer res-tag) (& sv-16)) + *res-static-buf* + ) + ) + ) + ) + (when (the-as pointer v1-3) + (+! (-> obj root trans x) (-> (the-as transform v1-3) trans x)) + (+! (-> obj root trans y) (-> (the-as transform v1-3) trans y)) + (set! + (-> (the-as transform (-> obj root)) rot y) + (+ (-> obj root trans z) (-> (the-as transform v1-3) trans z)) + ) + ) + ) + (let + ((f0-6 + ((method-of-type res-lump get-property-value-float) + (-> obj entity) + 'rotoffset + 'interp + -1000000000.0 + 0.0 + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + ) + (if (!= f0-6 0.0) + (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) f0-6) + ) + ) + ) + +;; definition for method 22 of type water-anim +;; INFO: Return type mismatch int vs none. +(defmethod TODO-RENAME-22 water-anim ((obj water-anim)) + (with-pp + (let ((s5-0 (-> obj look))) + (when (or (< s5-0 0) (>= s5-0 (-> *water-anim-look* length))) + (let ((t9-0 (the-as (function object object) enter-state)) + (a0-2 "skel group") + ) + (set! (-> pp next-state) process-drawable-art-error) + (t9-0 a0-2) + ) + ) + (let ((s5-1 (-> *water-anim-look* s5-0))) + (let ((s4-0 (-> s5-1 skel-group value))) + (let ((s3-0 s4-0)) + (when + (not + (if + (and + (nonzero? s3-0) + (type-type? (-> (the-as basic s3-0) type) skeleton-group) + ) + s3-0 + ) + ) + (let ((t9-2 (the-as (function object object) enter-state)) + (a0-5 "skel group") + ) + (set! (-> pp next-state) process-drawable-art-error) + (t9-2 a0-5) + ) + ) + ) + (dummy-14 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) + ) + )