diff --git a/Taskfile.yml b/Taskfile.yml index 15c5f9d8b5..b923fcf6b7 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -61,3 +61,6 @@ tasks: - python ./scripts/next-decomp-file.py --file "{{.FILE}}" - task: decomp - python ./scripts/find-label-types.py --file "{{.FILE}}" + type-test: + cmds: + - ./out/build/Release/bin/goalc-test.exe --gtest_brief=0 --gtest_filter="*TypeConsistency*" diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 6f49f7903e..b5ef60cc83 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -867,6 +867,8 @@ (MISSING-orb-hint #x233) + (firecanyon-not-enough-cells #x24f) + (beach-gimmie #x262) (beach-sentinel #x263) (jungle-canyon-end #x264) @@ -878,6 +880,8 @@ (misty-teetertotter-bonk-dax-tutorial #x2a4) + (firecanyon-collect-cells-text #x2b3) + (village2-gambler-money #x300) (village2-geologist-money #x301) (village2-warrior-money #x302) @@ -16581,7 +16585,7 @@ (initialize-collision (_type_ int) none 41) (dummy-42 (_type_) none 42) (TODO-RENAME-43 (_type_) none 43) - (dummy-44 (_type_) none 44) + (play-reminder (_type_) symbol 44) (dummy-45 (_type_) none 45) (dummy-46 (_type_) none 46) (target-above-threshold? (_type_) symbol 47) @@ -18772,8 +18776,8 @@ (define-extern ambient-hint-init-by-other (function none)) (define-extern level-hint-process-cmd function) (define-extern task-known? (function game-task symbol)) -(define-extern can-grab-display? function) -(define-extern level-hint-displayed? function) +(define-extern can-grab-display? (function process-taskable symbol)) ;; unconfirmed, see assistant-firecanyon +(define-extern level-hint-displayed? (function symbol)) ;; unconfirmed, see assistant-firecanyon (define-extern ambient-inspect function) ;; - Unknowns @@ -20384,8 +20388,8 @@ (define-extern othercam-calc function) (define-extern vector-for-ambient (function process-drawable vector vector)) -(define-extern hide-hud function) -(define-extern hud-hidden? function) +(define-extern hide-hud (function none)) ;; unconfirmed, see assistant-firecanyon +(define-extern hud-hidden? (function symbol)) ;; unconfirmed, see assistant-firecanyon (define-extern process-taskable-clean-up-after-talking function) (define-extern process-taskable-hide-exit function) (define-extern process-taskable-play-anim-code function) @@ -22852,16 +22856,16 @@ :flag-assert #x21008000f0 ;; inherited inspect of process-drawable (:methods - (plat-button-at-end () none 20) ;; state + (plat-button-at-end () _type_ :state 20) ;; state (dummy-21 () none 21) (plat-button-pressed () _type_ :state 22) (plat-button-move-downward () _type_ :state 23) (plat-button-move-upward () _type_ :state 24) (dummy-25 () none 25) - (dummy-26 () none 26) + (can-activate? (_type_) symbol 26) (TODO-RENAME-27 (_type_) none 27) (dummy-28 () none 28) - (TODO-RENAME-29 (_type_) float 29) + (can-target-move? (_type_) symbol 29) (should-teleport? (_type_) symbol 30) (TODO-RENAME-31 (_type_) none 31) ;; TODO - need to know super::14 (dummy-32 () none 32) @@ -29073,43 +29077,16 @@ ;; - Types -; (deftype jungle-elevator (plat-button) -; ((bottom-height float :offset-assert 240) -; (teleport-if-below-y float :offset-assert 244) -; (teleport-if-above-y float :offset-assert 248) -; ) -; :method-count-assert 33 -; :size-assert #xfc -; :heap-base #x90 -; :flag-assert #x21009000fc -; ;; inherited inspect of plat-button -; (: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) -; (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) -; (dummy-30 () none 30) -; (dummy-31 () none 31) -; (dummy-32 () none 32) -; ) -; ) +(deftype jungle-elevator (plat-button) + ((bottom-height float :offset-assert 240) + (teleport-if-below-y float :offset-assert 244) + (teleport-if-above-y float :offset-assert 248) + ) + :method-count-assert 33 + :size-assert #xfc + :heap-base #x90 + :flag-assert #x21009000fc + ) ;; ---------------------- @@ -29134,9 +29111,9 @@ ;; - Unknowns (define-extern *bouncer-sg* skeleton-group) -;;(define-extern bouncer-wait object) ;; unknown type -;;(define-extern bouncer-fire object) ;; unknown type -;;(define-extern bouncer-smush object) ;; unknown type +(define-extern bouncer-wait (state springbox)) ;; unknown type +(define-extern bouncer-fire (state springbox)) ;; unknown type +(define-extern bouncer-smush (state springbox)) ;; unknown type ;; ---------------------- @@ -29159,9 +29136,9 @@ ;; - Functions -(define-extern hopper-do-jump function) -(define-extern hopper-jump-to function) -(define-extern hopper-find-ground function) +(define-extern hopper-do-jump (function none :behavior hopper)) +(define-extern hopper-jump-to (function vector none :behavior hopper)) +(define-extern hopper-find-ground (function vector object :behavior hopper)) ;; - Unknowns @@ -29869,83 +29846,13 @@ ;; - Types -; (deftype junglefish (nav-enemy) -; () -; :method-count-assert 76 -; :size-assert #x190 -; :heap-base #x120 -; :flag-assert #x4c01200190 -; ;; not enough basic ops -; (: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) -; (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) -; (dummy-30 () none 30) -; (dummy-31 () none 31) -; (dummy-32 () none 32) -; (dummy-33 () none 33) -; (dummy-34 () none 34) -; (dummy-35 () none 35) -; (dummy-36 () none 36) -; (dummy-37 () none 37) -; (dummy-38 () none 38) -; (dummy-39 () none 39) -; (dummy-40 () none 40) -; (dummy-41 () none 41) -; (dummy-42 () none 42) -; (dummy-43 () none 43) -; (dummy-44 () none 44) -; (dummy-45 () none 45) -; (dummy-46 () none 46) -; (dummy-47 () none 47) -; (dummy-48 () none 48) -; (dummy-49 () none 49) -; (dummy-50 () none 50) -; (dummy-51 () none 51) -; (dummy-52 () none 52) -; (dummy-53 () none 53) -; (dummy-54 () none 54) -; (dummy-55 () none 55) -; (dummy-56 () none 56) -; (dummy-57 () none 57) -; (dummy-58 () none 58) -; (dummy-59 () none 59) -; (dummy-60 () none 60) -; (dummy-61 () none 61) -; (dummy-62 () none 62) -; (dummy-63 () none 63) -; (dummy-64 () none 64) -; (dummy-65 () none 65) -; (dummy-66 () none 66) -; (dummy-67 () none 67) -; (dummy-68 () none 68) -; (dummy-69 () none 69) -; (dummy-70 () none 70) -; (dummy-71 () none 71) -; (dummy-72 () none 72) -; (dummy-73 () none 73) -; (dummy-74 () none 74) -; (dummy-75 () none 75) -; ) -; ) +(deftype junglefish (nav-enemy) + () + :method-count-assert 76 + :size-assert #x190 + :heap-base #x120 + :flag-assert #x4c01200190 + ) ;; - Unknowns @@ -30798,9 +30705,9 @@ ;; - Functions -(define-extern blocking-plane-spawn function) +(define-extern blocking-plane-spawn (function curve-control none)) (define-extern racer-effect function) -(define-extern blocking-plane-destroy function) +(define-extern blocking-plane-destroy (function none)) ;; - Unknowns @@ -30923,36 +30830,22 @@ ;; - Types -; (deftype blocking-plane (process-drawable) -; () -; :method-count-assert 20 -; :size-assert #xb0 -; :heap-base #x40 -; :flag-assert #x14004000b0 -; ;; not enough basic ops -; (: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) -; ) -; ) +(deftype blocking-plane (process-drawable) + () + :method-count-assert 20 + :size-assert #xb0 + :heap-base #x40 + :flag-assert #x14004000b0 + ) ;; - Functions -(define-extern blocking-plane-init-by-other function) +(define-extern blocking-plane-init-by-other (function curve-control int none :behavior blocking-plane)) ;; - Unknowns (define-extern *ef-plane-sg* skeleton-group) -;;(define-extern blocking-plane-idle object) ;; unknown type +(define-extern blocking-plane-idle (state blocking-plane)) ;; unknown type ;; ---------------------- @@ -32841,84 +32734,14 @@ ;; - Types -; (deftype bonelurker (nav-enemy) -; ((bump-player-time uint64 :offset-assert 400) -; ) -; :method-count-assert 76 -; :size-assert #x198 -; :heap-base #x130 -; :flag-assert #x4c01300198 -; ;; inherited inspect of nav-enemy -; (: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) -; (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) -; (dummy-30 () none 30) -; (dummy-31 () none 31) -; (dummy-32 () none 32) -; (dummy-33 () none 33) -; (dummy-34 () none 34) -; (dummy-35 () none 35) -; (dummy-36 () none 36) -; (dummy-37 () none 37) -; (dummy-38 () none 38) -; (dummy-39 () none 39) -; (dummy-40 () none 40) -; (dummy-41 () none 41) -; (dummy-42 () none 42) -; (dummy-43 () none 43) -; (dummy-44 () none 44) -; (dummy-45 () none 45) -; (dummy-46 () none 46) -; (dummy-47 () none 47) -; (dummy-48 () none 48) -; (dummy-49 () none 49) -; (dummy-50 () none 50) -; (dummy-51 () none 51) -; (dummy-52 () none 52) -; (dummy-53 () none 53) -; (dummy-54 () none 54) -; (dummy-55 () none 55) -; (dummy-56 () none 56) -; (dummy-57 () none 57) -; (dummy-58 () none 58) -; (dummy-59 () none 59) -; (dummy-60 () none 60) -; (dummy-61 () none 61) -; (dummy-62 () none 62) -; (dummy-63 () none 63) -; (dummy-64 () none 64) -; (dummy-65 () none 65) -; (dummy-66 () none 66) -; (dummy-67 () none 67) -; (dummy-68 () none 68) -; (dummy-69 () none 69) -; (dummy-70 () none 70) -; (dummy-71 () none 71) -; (dummy-72 () none 72) -; (dummy-73 () none 73) -; (dummy-74 () none 74) -; (dummy-75 () none 75) -; ) -; ) +(deftype bonelurker (nav-enemy) + ((bump-player-time uint64 :offset-assert 400) + ) + :method-count-assert 76 + :size-assert #x198 + :heap-base #x130 + :flag-assert #x4c01300198 + ) ;; - Functions @@ -33235,51 +33058,60 @@ ;; - Types -; (deftype sequenceA (UNKNOWN) -; () -; :method-count-assert 0 -; :size-assert #x0 -; :flag-assert #x0 -; ;; bad get label -; ) +(deftype sequenceA (process-hidden) + () + :method-count-assert 15 + :size-assert #x70 + :flag-assert #xf00000070 + ) -; (deftype sequenceB (UNKNOWN) -; () -; :method-count-assert 0 -; :size-assert #x0 -; :flag-assert #x0 -; ;; unrecognized get op: (set! v1 process-taskable) parent was UNKNOWN -; ) +(deftype sequenceB (process-taskable) + ((bonelurker handle :offset-assert 384) ;; bonelurker + (evilbro handle :offset-assert 392) ;; evilbro + (evilsis handle :offset-assert 400) ;; evilsis + (lurker-army handle 9 :offset-assert 408) ;; babak? + ) + :heap-base #x170 + :method-count-assert 53 + :size-assert #x1e0 + :flag-assert #x35017001e0 + ) -; (deftype sequenceC (UNKNOWN) -; () -; :method-count-assert 0 -; :size-assert #x0 -; :flag-assert #x0 -; ;; unrecognized get op: (set! v1 process-taskable) parent was UNKNOWN -; ) +(deftype sequenceC (process-taskable) + ((bonelurker handle :offset-assert 384) ;; bonelurker likely + (darkecocan handle :offset-assert 392) ;; darkecobarrel-base likely + (darkecocan-glowing-look lod-set :inline :offset-assert 400) + ) + :heap-base #x150 + :method-count-assert 53 + :size-assert #x1b1 + :flag-assert #x35015001b1 + ) -; (deftype army-info (UNKNOWN) -; () -; :method-count-assert 0 -; :size-assert #x0 -; :flag-assert #x0 -; ;; bad get label -; ) +(deftype army-info (structure) + ((pos vector :offset-assert 0) + (rot float :offset-assert 4) + (start-frame float :offset-assert 8) + (skel symbol :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) ;; - Functions -(define-extern sequenceC-trans-hook function) -(define-extern sequenceC-can-trans-hook function) -(define-extern sequenceC-can-trans-hook-2 function) -(define-extern evilsib-trans-hook-wait function) -(define-extern evilsib-trans-hook-hover function) +(define-extern sequenceC-trans-hook (function none :behavior sequenceC)) +(define-extern sequenceC-can-trans-hook (function none :behavior sequenceC)) +(define-extern sequenceC-can-trans-hook-2 (function none :behavior sequenceC)) +(define-extern evilsib-trans-hook-wait (function none :behavior evilbro)) +(define-extern evilsib-trans-hook-hover (function none :behavior evilbro)) ;; - Unknowns (define-extern *darkecocan-sg* skeleton-group) (define-extern *darkecocan-glow-sg* skeleton-group) -;;(define-extern *lurker-army* object) ;; unknown type +(define-extern *lurker-army* (array army-info)) ;; unknown type (define-extern *evilbro-sg* skeleton-group) (define-extern *evilsis-sg* skeleton-group) @@ -33324,60 +33156,13 @@ ;; - Types -; (deftype assistant-firecanyon (process-taskable) -; () -; :method-count-assert 53 -; :size-assert #x17c -; :heap-base #x110 -; :flag-assert #x350110017c -; ;; not enough basic ops -; (: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) -; (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) -; (dummy-30 () none 30) -; (dummy-31 () none 31) -; (dummy-32 () none 32) -; (dummy-33 () none 33) -; (dummy-34 () none 34) -; (dummy-35 () none 35) -; (dummy-36 () none 36) -; (dummy-37 () none 37) -; (dummy-38 () none 38) -; (dummy-39 () none 39) -; (dummy-40 () none 40) -; (dummy-41 () none 41) -; (dummy-42 () none 42) -; (dummy-43 () none 43) -; (dummy-44 () none 44) -; (dummy-45 () none 45) -; (dummy-46 () none 46) -; (dummy-47 () none 47) -; (dummy-48 () none 48) -; (dummy-49 () none 49) -; (dummy-50 () none 50) -; (dummy-51 () none 51) -; (dummy-52 () none 52) -; ) -; ) +(deftype assistant-firecanyon (process-taskable) + () + :method-count-assert 53 + :size-assert #x17c + :heap-base #x110 + :flag-assert #x350110017c + ) ;; - Unknowns @@ -33994,121 +33779,27 @@ ;; - Types -; (deftype assistant-bluehut (process-taskable) -; ((sound-id sound-id :offset-assert 380) -; (jaws uint64 :offset-assert 384) -; (sage basic :offset-assert 392) -; (im-talking basic :offset-assert 396) -; ) -; :method-count-assert 53 -; :size-assert #x190 -; :heap-base #x120 -; :flag-assert #x3501200190 -; ;; inherited inspect of process-taskable -; (: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) -; (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) -; (dummy-30 () none 30) -; (dummy-31 () none 31) -; (dummy-32 () none 32) -; (dummy-33 () none 33) -; (dummy-34 () none 34) -; (dummy-35 () none 35) -; (dummy-36 () none 36) -; (dummy-37 () none 37) -; (dummy-38 () none 38) -; (dummy-39 () none 39) -; (dummy-40 () none 40) -; (dummy-41 () none 41) -; (dummy-42 () none 42) -; (dummy-43 () none 43) -; (dummy-44 () none 44) -; (dummy-45 () none 45) -; (dummy-46 () none 46) -; (dummy-47 () none 47) -; (dummy-48 () none 48) -; (dummy-49 () none 49) -; (dummy-50 () none 50) -; (dummy-51 () none 51) -; (dummy-52 () none 52) -; ) -; ) +(deftype assistant-bluehut (process-taskable) + ((sound-id sound-id :offset-assert 380) + (jaws uint64 :offset-assert 384) + (sage entity-actor :offset-assert 392) + (im-talking symbol :offset-assert 396) + ) + :method-count-assert 53 + :size-assert #x190 + :heap-base #x120 + :flag-assert #x3501200190 + ) -; (deftype sage-bluehut (process-taskable) -; ((reminder-played basic :offset-assert 380) -; (assistant basic :offset-assert 384) -; ) -; :method-count-assert 53 -; :size-assert #x184 -; :heap-base #x120 -; :flag-assert #x3501200184 -; ;; inherited inspect of process-taskable -; (: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) -; (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) -; (dummy-30 () none 30) -; (dummy-31 () none 31) -; (dummy-32 () none 32) -; (dummy-33 () none 33) -; (dummy-34 () none 34) -; (dummy-35 () none 35) -; (dummy-36 () none 36) -; (dummy-37 () none 37) -; (dummy-38 () none 38) -; (dummy-39 () none 39) -; (dummy-40 () none 40) -; (dummy-41 () none 41) -; (dummy-42 () none 42) -; (dummy-43 () none 43) -; (dummy-44 () none 44) -; (dummy-45 () none 45) -; (dummy-46 () none 46) -; (dummy-47 () none 47) -; (dummy-48 () none 48) -; (dummy-49 () none 49) -; (dummy-50 () none 50) -; (dummy-51 () none 51) -; (dummy-52 () none 52) -; ) -; ) +(deftype sage-bluehut (process-taskable) + ((reminder-played symbol :offset-assert 380) + (assistant entity-actor :offset-assert 384) + ) + :method-count-assert 53 + :size-assert #x184 + :heap-base #x120 + :flag-assert #x3501200184 + ) ;; - Unknowns @@ -34123,60 +33814,13 @@ ;; - Types -; (deftype flutflut-bluehut (process-taskable) -; () -; :method-count-assert 53 -; :size-assert #x17c -; :heap-base #x110 -; :flag-assert #x350110017c -; ;; not enough basic ops -; (: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) -; (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) -; (dummy-30 () none 30) -; (dummy-31 () none 31) -; (dummy-32 () none 32) -; (dummy-33 () none 33) -; (dummy-34 () none 34) -; (dummy-35 () none 35) -; (dummy-36 () none 36) -; (dummy-37 () none 37) -; (dummy-38 () none 38) -; (dummy-39 () none 39) -; (dummy-40 () none 40) -; (dummy-41 () none 41) -; (dummy-42 () none 42) -; (dummy-43 () none 43) -; (dummy-44 () none 44) -; (dummy-45 () none 45) -; (dummy-46 () none 46) -; (dummy-47 () none 47) -; (dummy-48 () none 48) -; (dummy-49 () none 49) -; (dummy-50 () none 50) -; (dummy-51 () none 51) -; (dummy-52 () none 52) -; ) -; ) +(deftype flutflut-bluehut (process-taskable) + () + :method-count-assert 53 + :size-assert #x17c + :heap-base #x110 + :flag-assert #x350110017c + ) ;; - Unknowns @@ -41761,29 +41405,15 @@ ; :flag-assert #x900000014 ; ) -; (deftype darkecobarrel-base (process-drawable) -; ((speed float :offset-assert 176) -; (sync uint64 :offset-assert 184) -; ) -; :method-count-assert 20 -; :size-assert #xc0 -; :heap-base #x50 -; :flag-assert #x14005000c0 -; ;; inherited inspect of process-drawable -; (: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) -; ) -; ) +(deftype darkecobarrel-base (process-drawable) + ((speed float :offset-assert 176) + (sync uint64 :offset-assert 184) + ) + :method-count-assert 20 + :size-assert #xc0 + :heap-base #x50 + :flag-assert #x14005000c0 + ) ; (deftype darkecobarrel-mover (darkecobarrel-base) ; ((start-time uint64 :offset-assert 192) diff --git a/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc b/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc index 380672bf72..23b9c59650 100644 --- a/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc @@ -698,5 +698,11 @@ [27, "(function projectile int)"] ], + "sidekick-human": [ + [7, "(function sparticle-launch-control :behavior sequenceC)"], + [15, "(function sparticle-launch-control :behavior sequenceB)"], + [16, "(function sparticle-launch-control :behavior sequenceB)"] + ], + "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index 9a368e1a5b..c14a8c68db 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -456,6 +456,41 @@ ["L150", "attack-info"] ], + "blocking-plane": [ + ["L18", "vector"], + ["L19", "vector"], + ["L20", "vector"] + ], + + "sidekick-human": [ + ["L131", "vector"], + ["L350", "vector"], + ["L940", "float", true], + ["L941", "float", true], + ["L942", "float", true], + ["L943", "float", true], + ["L944", "float", true], + ["L945", "float", true], + ["L946", "float", true], + ["L990", "float", true], + ["L991", "uint64", true], + ["L992", "uint64", true], + ["L993", "uint64", true], + ["L994", "uint64", true] + ], + + "assistant-firecanyon": [ + ["L71", "vector"] + ], + + "sage-bluehut": [ + ["L82", "vector"] + ], + + "flutflut-bluehut": [ + ["L34", "vector"] + ], + // please do not add things after this entry! git is dumb. "object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index c9ea4eee6e..6ba4ba6a39 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -1526,5 +1526,81 @@ [32, "vector"] ], + "(enter plat-button-move-downward jungle-elevator)": [ + [16, "event-message-block"] + ], + + "(trans plat-button-move-downward jungle-elevator)": [ + [16, "vector"], + [32, "vector"], + [48, "event-message-block"] + ], + + "(method 29 jungle-elevator)": [ + [16, "vector"] + ], + + "(event bouncer-wait)": [ + [16, "event-message-block"] + ], + + "hopper-find-ground": [ + [16, "vector"], + [32, "bone"] + ], + + "blocking-plane-init-by-other": [ + [16, "matrix"] + ], + + "evilsib-trans-hook-wait": [ + [16, "event-message-block"] + ], + + "(method 32 sequenceB)": [ + [16, "event-message-block"] + ], + + "(event play-anim sequenceB)": [ + [16, "event-message-block"] + ], + + "(exit play-anim sequenceB)": [ + [16, "event-message-block"] + ], + + "sequenceC-can-trans-hook-2": [ + [16, "vector"], + [32, "event-message-block"] + ], + + "sequenceC-can-trans-hook": [ + [16, "event-message-block"] + ], + + "(method 32 sequenceC)": [ + [16, "event-message-block"] + ], + + "sequenceC-trans-hook": [ + [16, "vector"] + ], + + "(trans hidden assistant-firecanyon)": [ + [16, "font-context"] + ], + + "(method 32 sage-bluehut)": [ + [16, "event-message-block"] + ], + + "(exit play-anim sage-bluehut)": [ + [16, "event-message-block"] + ], + + "(method 43 sage-bluehut)": [ + [16, "vector"] + ], + "placeholder-do-not-add-below!": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 7def33966b..bd19571a55 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -2619,5 +2619,123 @@ [70, "v1", "process-mask"] ], + "(trans plat-button-move-downward jungle-elevator)": [ + [11, "v0", "(state plat-button)"] + ], + + "(code plat-button-at-end jungle-elevator)": [ + [43, "t9", "(function none :behavior plat-button)"] + ], + + "(code bouncer-fire)": [ + [17, "v1", "art-joint-anim"] + ], + + "(method 39 hopper)": [ + [16, "t9", "(function nav-enemy none)"] + ], + + "(code nav-enemy-idle hopper)": [ + [16, "v1", "art-joint-anim"], + [70, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-patrol hopper)": [ + [34, "v1", "art-joint-anim"], + [105, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-chase hopper)": [ + [34, "v1", "art-joint-anim"], + [105, "v1", "art-joint-anim"] + ], + + "(method 39 junglefish)": [ + [12, "t9", "(function nav-enemy none)"] + ], + + "(code nav-enemy-patrol junglefish)": [ + [27, "v1", "art-joint-anim"], + [107, "v1", "art-joint-anim"], + [169, "v1", "art-joint-anim"], + [251, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-attack junglefish)": [ + [14, "v1", "art-joint-anim"] + ], + + "(code nav-enemy-victory junglefish)": [ + [14, "v1", "art-joint-anim"], + [64, "v1", "art-joint-anim"] + ], + + "(method 32 sequenceB)": [ + [177, "s3", "babak"], + [186, "s3", "babak"], + [236, "s3", "babak"], + [245, "s3", "babak"] + ], + + "(event play-anim sequenceB)": [ + [98, "gp", "evilbro"], + [107, "gp", "evilbro"], + [289, "gp", "evilsis"], + [298, "gp", "evilsis"] + ], + + "sequenceC-can-trans-hook": [ + [12, "v1", "process-taskable"] + ], + + "(anon-function 7 sidekick-human)": [ + [2, "v1", "process-taskable"], + [10, "v1", "process-taskable"] + ], + + "(code idle assistant-firecanyon)": [ + [33, "v1", "float"], + [55, "v1", "float"], + [139, "v1", "float"], + [157, "v1", "art-joint-anim"], + [213, "v1", "float"], + [295, "v1", "art-joint-anim"], + [343, "v1", "float"], + [424, "v1", "float"], + [446, "v1", "float"], + [530, "v1", "float"], + [548, "v1", "art-joint-anim"], + [604, "v1", "float"], + [686, "v1", "art-joint-anim"], + [734, "v1", "float"], + [756, "v1", "float"] + ], + + "(method 32 sage-bluehut)": [ + [44, "v1", "float"], + [63, "s5", "assistant-bluehut"] + ], + + "(method 47 sage-bluehut)": [ + [18, "gp", "assistant-bluehut"], + [23, "gp", "assistant-bluehut"] + ], + + "(method 43 sage-bluehut)": [ + [19, "v1", "float"] + ], + + "(code idle sage-bluehut)": [ + [34, "v1", "float"], + [137, "v1", "art-joint-anim"] + ], + + "(code idle flutflut-bluehut)": [ + [33, "v1", "float"], + [187, "v1", "art-joint-anim"], + [243, "v1", "float"], + [329, "v1", "art-joint-anim"] + ], + "placeholder-do-not-add-below": [] } diff --git a/goal_src/engine/ambient/ambient.gc b/goal_src/engine/ambient/ambient.gc index b8ea66e41f..87f73ea89e 100644 --- a/goal_src/engine/ambient/ambient.gc +++ b/goal_src/engine/ambient/ambient.gc @@ -8,4 +8,8 @@ (defmethod birth-ambient! entity-ambient ((obj entity-ambient)) ;; TODO stub (none) - ) \ No newline at end of file + ) + +;; TODO - for assistant-firecanyon +(define-extern level-hint-displayed? (function symbol)) +(define-extern can-grab-display? (function process-taskable symbol)) diff --git a/goal_src/engine/draw/process-drawable.gc b/goal_src/engine/draw/process-drawable.gc index 360e0682f1..8bb10a7337 100644 --- a/goal_src/engine/draw/process-drawable.gc +++ b/goal_src/engine/draw/process-drawable.gc @@ -24,3 +24,5 @@ (define-extern ja-eval (function int)) ;; TODO - for basebutton (define-extern anim-loop (function symbol)) +;; TODO - for bouncer +(define-extern ja-min? (function int symbol)) diff --git a/goal_src/engine/game/task/task-control-h.gc b/goal_src/engine/game/task/task-control-h.gc index 75eb1453e8..879d1583c6 100644 --- a/goal_src/engine/game/task/task-control-h.gc +++ b/goal_src/engine/game/task/task-control-h.gc @@ -156,7 +156,7 @@ (initialize-collision (_type_ int) none 41) (dummy-42 (_type_) none 42) (TODO-RENAME-43 (_type_) none 43) - (dummy-44 (_type_) none 44) + (play-reminder (_type_) symbol 44) (dummy-45 (_type_) none 45) (dummy-46 (_type_) none 46) (target-above-threshold? (_type_) symbol 47) diff --git a/goal_src/engine/ui/hud-classes.gc b/goal_src/engine/ui/hud-classes.gc index f75c5a9f89..258f654e8a 100644 --- a/goal_src/engine/ui/hud-classes.gc +++ b/goal_src/engine/ui/hud-classes.gc @@ -5,3 +5,6 @@ ;; name in dgo: hud-classes ;; dgos: GAME, ENGINE +;; TODO - for assistant-firecanyon +(define-extern hide-hud (function none)) +(define-extern hud-hidden? (function symbol)) diff --git a/goal_src/engine/ui/text-h.gc b/goal_src/engine/ui/text-h.gc index 085ca4f6bd..643eca1dab 100644 --- a/goal_src/engine/ui/text-h.gc +++ b/goal_src/engine/ui/text-h.gc @@ -32,12 +32,12 @@ (game-options #x127) (graphic-options #x128) (sound-options #x129) - + (hidden-power-cell #x12f) ;; why is this here?? (saving-data #x136) (do-not-remove-mem-card #x138) - + (continue-without-saving #x13f) (back #x13e) (load-game #x14b) @@ -73,19 +73,21 @@ (misty-return-to-pool #x215) ;; task name?? (misty-find-transpad #x216) ;; task name? (misty-balloon-lurkers #x217) - + (village1-level-name #x220) (beach-level-name #x221) (jungle-level-name #x222) (misty-level-name #x223) - + (beach-seagull-get #x22e) - + (jungle-lurkerm-unblock #x22f) (jungle-lurkerm-return #x230) - + (MISSING-orb-hint #x233) - + + (firecanyon-not-enough-cells #x24f) + (beach-gimmie #x262) (beach-sentinel #x263) (jungle-canyon-end #x264) @@ -96,24 +98,26 @@ (beach-seagulls-avalanche #x273) (misty-teetertotter-bonk-dax-tutorial #x2a4) - + + (firecanyon-collect-cells-text #x2b3) + (village2-gambler-money #x300) (village2-geologist-money #x301) (village2-warrior-money #x302) (village2-oracle-money #x303) (swamp-tether #x304) - + (swamp-flutflut #x307) - + (swamp-billy #x309) - + (sunken-elevator-raise #x30a) (sunken-elevator-get-to-roof #x30b) (sunken-pipe #x30c) (sunken-climb-tube #x30d) ;; task name? (sunken-pool #x30e) ;; task name? (sunken-platforms #x30f) - + (rolling-moles #x310) (rolling-moles-return #x311) (rolling-robbers #x312) @@ -121,22 +125,22 @@ (rolling-race-return #x314) (rolling-lake #x315) (rolling-plants #x316) - + (unknown-buzzers #x317) - + (village2-level-name #x319) - + (rolling-level-name #x31b) (swamp-level-name #x31c) (sunken-level-name #x31d) (ogre-level-name #x31e) - + (swamp-battle #x321) (sunken-bottom #x322) ;; task name? (reach-center #x323) ;; task name? (rolling-ring-chase-1 #x324) (rolling-ring-chase-2 #x325) - + (village3-miner-money #x400) (village3-oracle-money #x401) (snow-ram-3-left #x402) @@ -145,58 +149,58 @@ (snow-fort #x405) (snow-bunnies #x406) (snow-open-door #x408) ;; task name? - + (cave-robot-climb #x40e) (cave-dark-climb #x40f) ;; destroy crystals - + (cave-gnawers #x410) (cave-dark-crystals #x411) - + (village3-buzzer #x413) - + (village3-level-name #x415) - + (snowy-level-name #x417) - + (cave-level-name #x419) - + (lavatube-level-name #x41b) - + (snow-eggtop #x421) - + (cave-spider-tunnel #x423) (cave-platforms #x424) - + (cave-swing-poles #x426) - + (snow-frozen-crate #x42b) ;; task name? (snow-bumpers #x42c) - + (fire-canyon-end #x500) (fire-canyon-buzzer #x501) - + (fire-canyon-level-name #x50c) - + (ogre-end #x600) (ogre-buzzer #x601) (ogre-boss #x603) - + (lavatube-end #x700) (lavatube-buzzer #x701) - + (citadel-buzzer #x800) (citadel-level-name #x801) (citadel-sage-blue #x802) (citadel-sage-red #x803) (citadel-sage-yellow #x804) (citadel-sage-green #x805) - + (training-gimmie-task-name #x91b) (training-buzzer-task-name #x91c) (training-door-task-name #x91d) (training-climb-task-name #x91e) (training-level-name #x91f) - + (inc #xf10) (europe #xf11) ) diff --git a/goal_src/levels/common/babak.gc b/goal_src/levels/common/babak.gc index 1801daeb22..f0b053a2f4 100644 --- a/goal_src/levels/common/babak.gc +++ b/goal_src/levels/common/babak.gc @@ -5,3 +5,14 @@ ;; name in dgo: babak ;; dgos: GAME, COMMON, L1 +(define-extern *babak-sg* skeleton-group) + +;; TODO - for sidekick-human +(deftype babak (nav-enemy) + () + :method-count-assert 76 + :size-assert #x190 + :heap-base #x120 + :flag-assert #x4c01200190 + ;; not enough basic ops + ) diff --git a/goal_src/levels/common/blocking-plane.gc b/goal_src/levels/common/blocking-plane.gc index 8c7c392f1e..fb45380e66 100644 --- a/goal_src/levels/common/blocking-plane.gc +++ b/goal_src/levels/common/blocking-plane.gc @@ -5,3 +5,175 @@ ;; name in dgo: blocking-plane ;; dgos: L1, FIC, LAV, MIS, OGR, RACERP, ROL, SNO, SWA +(define-extern *ef-plane-sg* skeleton-group) + +;; definition of type blocking-plane +(deftype blocking-plane (process-drawable) + () + :heap-base #x40 + :method-count-assert 20 + :size-assert #xb0 + :flag-assert #x14004000b0 + ) + +;; failed to figure out what this is: +(let + ((v1-1 + (new 'static 'skeleton-group + :art-group-name "ef-plane" + :bounds (new 'static 'vector :w 122880.0) + :version #x6 + ) + ) + ) + (set! (-> v1-1 jgeo) 0) + (set! (-> v1-1 janim) 2) + (set! (-> v1-1 mgeo 0) (the-as uint 1)) + (set! (-> v1-1 lod-dist 0) 4095996000.0) + (set! *ef-plane-sg* v1-1) + ) + +;; failed to figure out what this is: +(defstate blocking-plane-idle (blocking-plane) + :code + (behavior () + (transform-post) + (while #t + (logior! (-> self mask) (process-mask sleep)) + (suspend) + ) + (none) + ) + ) + +;; definition for function blocking-plane-init-by-other +;; Used lq/sq +(defbehavior + blocking-plane-init-by-other blocking-plane + ((arg0 curve-control) (arg1 int)) + (if (or (not arg0) (logtest? (-> arg0 flags) (path-control-flag not-found))) + (deactivate self) + ) + (let ((s5-0 (new 'static 'vector)) + (gp-0 (new 'static 'vector)) + ) + 0.0 + (eval-path-curve-div! arg0 s5-0 (the float arg1) 'exact) + (eval-path-curve-div! arg0 gp-0 (+ 1.0 (the float arg1)) 'exact) + (let ((f30-1 (* 0.5 (vector-vector-distance s5-0 gp-0))) + (s4-1 + (new + 'process + 'collide-shape + self + (collide-list-enum usually-hit-by-player) + ) + ) + ) + (let + ((s3-1 + (new + 'process + 'collide-shape-prim-mesh + s4-1 + (the-as uint 0) + (the-as uint 0) + ) + ) + ) + (set! (-> s3-1 prim-core collide-as) (the-as uint 512)) + (set! (-> s3-1 collide-with) (the-as uint 16)) + (set! (-> s3-1 prim-core action) (the-as uint 1)) + (set! (-> s3-1 prim-core offense) 4) + (set! (-> s3-1 transform-index) 3) + (set-vector! (-> s3-1 local-sphere) 0.0 0.0 0.0 (fmax 122880.0 f30-1)) + ) + (dummy-46 s4-1) + (set! (-> s4-1 nav-radius) (* 0.75 (-> s4-1 root-prim local-sphere w))) + (dummy-50 s4-1) + (set! (-> self root) s4-1) + ) + (let ((s4-2 (new-stack-matrix0))) + (vector+! (-> self root trans) s5-0 gp-0) + (vector-float*! (-> self root trans) (-> self root trans) 0.5) + (set! (-> self root trans y) (+ 61440.0 (-> self root trans y))) + (vector-! (the-as vector (-> s4-2 vector)) gp-0 s5-0) + (set! + (-> self root scale x) + (* + 0.00024414062 + (vector-normalize-ret-len! (the-as vector (-> s4-2 vector)) 1.0) + ) + ) + (set! (-> self root scale y) 30.0) + (set! (-> self root scale z) 0.0) + (set! (-> s4-2 vector 1 quad) (-> (new 'static 'vector :y 1.0 :w 1.0) quad)) + (vector-cross! + (-> s4-2 vector 2) + (the-as vector (-> s4-2 vector)) + (-> s4-2 vector 1) + ) + (vector-normalize! (-> s4-2 vector 2) 1.0) + (matrix->quaternion (-> self root quat) s4-2) + ) + ) + (dummy-14 self *ef-plane-sg* '()) + (logior! (-> self draw status) 32) + (go blocking-plane-idle) + (none) + ) + +;; definition for function blocking-plane-spawn +;; INFO: Return type mismatch int vs none. +(defun blocking-plane-spawn ((arg0 curve-control)) + (with-pp + (cond + ((or (not arg0) (logtest? (-> arg0 flags) (path-control-flag not-found))) + ) + (else + (let ((s5-0 (the int (the float (+ (-> arg0 curve num-cverts) -1)))) + (s4-0 0) + ) + (while (< s4-0 s5-0) + (let ((s3-0 (get-process *default-dead-pool* blocking-plane #x4000))) + (when s3-0 + (let ((t9-1 (method-of-type blocking-plane activate))) + (t9-1 + (the-as blocking-plane s3-0) + pp + 'blocking-plane + (the-as pointer #x70004000) + ) + ) + (run-now-in-process s3-0 blocking-plane-init-by-other arg0 s4-0) + (-> s3-0 ppointer) + ) + ) + (+! s4-0 2) + ) + ) + ) + ) + 0 + (none) + ) + ) + +;; definition for function blocking-plane-destroy +;; INFO: Return type mismatch int vs none. +(defun blocking-plane-destroy () + (with-pp + (let ((gp-0 (-> pp child))) + (while gp-0 + (let ((s5-0 (ppointer->process gp-0))) + (set! gp-0 (-> gp-0 0 brother)) + (if (type-type? (-> s5-0 type) blocking-plane) + (deactivate s5-0) + ) + ) + ) + ) + 0 + (none) + ) + ) diff --git a/goal_src/levels/common/plat-button.gc b/goal_src/levels/common/plat-button.gc index 2ccd6e04a7..1d8aa6fed3 100644 --- a/goal_src/levels/common/plat-button.gc +++ b/goal_src/levels/common/plat-button.gc @@ -24,16 +24,16 @@ :flag-assert #x21008000f0 ;; inherited inspect of process-drawable (:methods - (plat-button-at-end () none 20) ;; state + (plat-button-at-end () _type_ :state 20) ;; state (dummy-21 () none 21) (plat-button-pressed () _type_ :state 22) (plat-button-move-downward () _type_ :state 23) (plat-button-move-upward () _type_ :state 24) (dummy-25 () none 25) - (dummy-26 () none 26) + (can-activate? (_type_) symbol 26) (TODO-RENAME-27 (_type_) none 27) (dummy-28 () none 28) - (TODO-RENAME-29 (_type_) float 29) + (can-target-move? (_type_) symbol 29) (should-teleport? (_type_) symbol 30) (TODO-RENAME-31 (_type_) none 31) ;; TODO - need to know super::14 (dummy-32 () none 32) diff --git a/goal_src/levels/firecanyon/assistant-firecanyon.gc b/goal_src/levels/firecanyon/assistant-firecanyon.gc index abe1ac4ffb..a86e7b9dff 100644 --- a/goal_src/levels/firecanyon/assistant-firecanyon.gc +++ b/goal_src/levels/firecanyon/assistant-firecanyon.gc @@ -5,3 +5,867 @@ ;; name in dgo: assistant-firecanyon ;; dgos: L1, FIC +(define-extern *assistant-firecanyon-sg* skeleton-group) + +;; definition of type assistant-firecanyon +(deftype assistant-firecanyon (process-taskable) + () + :heap-base #x110 + :method-count-assert 53 + :size-assert #x17c + :flag-assert #x350110017c + ) + +;; failed to figure out what this is: +(let + ((v1-1 + (new 'static 'skeleton-group + :art-group-name "assistant-firecanyon" + :bounds (new 'static 'vector :w 16384.0) + :version #x6 + :shadow 2 + ) + ) + ) + (set! (-> v1-1 jgeo) 0) + (set! (-> v1-1 janim) 3) + (set! (-> v1-1 mgeo 0) (the-as uint 1)) + (set! (-> v1-1 lod-dist 0) 4095996000.0) + (set! *assistant-firecanyon-sg* v1-1) + ) + +;; definition for method 32 of type assistant-firecanyon +(defmethod + play-anim! + assistant-firecanyon + ((obj assistant-firecanyon) (arg0 symbol)) + (case (current-status (-> obj tasks)) + ((6) + (if arg0 + (close-current! (-> obj tasks)) + ) + (new 'static 'spool-anim + :name "assistant-firecanyon-resolution" + :index 13 + :parts 11 + :command-list + '( + (0 + want-levels + village1 + firecanyon + ) + ((the binteger 151) + joint + "cameraB" + ) + ((the binteger 346) + joint + "camera" + ) + ((the binteger 346) + shadow + self + #f + ) + ((the binteger 461) + joint + "cameraB" + ) + ((the binteger 546) + joint + "camera" + ) + ((the binteger 636) + joint + "cameraB" + ) + ((the binteger 695) + alive + "balloon-12" + ) + ((the binteger 696) + joint + "camera" + ) + ((the binteger 821) + alive + "balloon-16" + ) + ((the binteger 822) + joint + "cameraB" + ) + ((the binteger 962) joint "camera") ((the binteger 1268) shadow self #t) + ) + ) + ) + (else + (if arg0 + (format + 0 + "ERROR: : ~S playing anim for task status ~S~%" + (-> obj name) + (task-status->string (the-as task-status (current-status (-> obj tasks)))) + ) + ) + (-> obj draw art-group data 3) + ) + ) + ) + +;; definition for method 31 of type assistant-firecanyon +(defmethod get-art-elem assistant-firecanyon ((obj assistant-firecanyon)) + (if (zero? (current-status (-> obj tasks))) + (-> obj draw art-group data 8) + (-> obj draw art-group data 3) + ) + ) + +;; failed to figure out what this is: +(defstate hidden (assistant-firecanyon) + :virtual #t + :trans + (behavior () + ((-> (method-of-type process-taskable hidden) trans)) + (when (and (cond + ((and + *target* + (>= + 61440.0 + (vector-vector-distance + (-> self root trans) + (-> *target* control trans) + ) + ) + ) + #t + ) + (else + (set! + (-> self state-time) + (the-as seconds (-> *display* base-frame-counter)) + ) + #f + ) + ) + (and + (not + (closed? + (-> self tasks) + (game-task firecanyon-assistant) + (task-status need-reward-speech) + ) + ) + (not (movie?)) + (not (level-hint-displayed?)) + (not + (and + *cheat-mode* + (logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3)) + ) + ) + (< + (- + (-> *display* base-frame-counter) + (the-as int (-> self state-time)) + ) + 3000 + ) + ) + ) + (hide-hud) + (kill-current-level-hint '() '(sidekick voicebox) 'exit) + (when + (and + (seen-text? *game-info* (game-text-id firecanyon-not-enough-cells)) + (hud-hidden?) + (can-grab-display? self) + (not (-> *setting-control* current hint)) + ) + (let + ((gp-0 + (new + 'stack + 'font-context + *font-default-matrix* + 32 + 160 + 0.0 + (font-color default) + (font-flags shadow kerning) + ) + ) + ) + (let ((v1-26 gp-0)) + (set! (-> v1-26 width) (the float 448)) + ) + (let ((v1-27 gp-0)) + (set! (-> v1-27 height) (the float 80)) + ) + (let ((v1-28 gp-0)) + (set! (-> v1-28 scale) 0.8) + ) + (set! (-> gp-0 flags) (font-flags shadow kerning middle large)) + (print-game-text + (lookup-text! + *common-text* + (game-text-id firecanyon-collect-cells-text) + #f + ) + gp-0 + #f + 128 + 22 + ) + ) + ) + (level-hint-spawn + (game-text-id firecanyon-not-enough-cells) + "asstvb09" + #f + *entity-pool* + 0 + ) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate idle (assistant-firecanyon) + :virtual #t + :code + (behavior () + (if (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (get-art-elem self) + ) + (ja-channel-push! 1 15) + ) + (while #t + (let ((gp-0 #t)) + (cond + ((zero? (current-status (-> self tasks))) + (let* ((v1-8 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-9 (the-as number (logior #x3f800000 v1-8))) + ) + (when (< (+ -1.0 (the-as float v1-9)) 0.5) + (let ((v1-14 (-> self skel root-channel 0))) + (set! + (-> v1-14 frame-group) + (the-as art-joint-anim (-> self draw art-group data 8)) + ) + ) + (let* ((f30-0 2.0) + (v1-16 + (/ (the-as int (rand-uint31-gen *random-generator*)) 256) + ) + (v1-17 (the-as number (logior #x3f800000 v1-16))) + ) + (countdown + (gp-1 (+ (the int (* f30-0 (+ -1.0 (the-as float v1-17)))) 3)) + (let ((a0-15 (-> self skel root-channel 0))) + (set! + (-> a0-15 frame-group) + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-15 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-15 param 1) 1.0) + (set! (-> a0-15 frame-num) 0.0) + (joint-control-channel-group! + a0-15 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-16 (-> self skel root-channel 0))) + (set! + (-> a0-16 param 0) + (the float (+ (-> a0-16 frame-group data 0 length) -1)) + ) + (set! (-> a0-16 param 1) 1.0) + (joint-control-channel-group-eval! + a0-16 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + (set! gp-0 #f) + ) + ) + (when + (or + gp-0 + (let* + ((v1-53 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-54 (the-as number (logior #x3f800000 v1-53))) + ) + (< (+ -1.0 (the-as float v1-54)) 0.5) + ) + ) + (let ((a0-20 (-> self skel root-channel 0))) + (set! + (-> a0-20 frame-group) + (the-as art-joint-anim (-> self draw art-group data 9)) + ) + (set! + (-> a0-20 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 9)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-20 param 1) 1.0) + (set! (-> a0-20 frame-num) 0.0) + (joint-control-channel-group! + a0-20 + (the-as art-joint-anim (-> self draw art-group data 9)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-21 (-> self skel root-channel 0))) + (set! + (-> a0-21 param 0) + (the float (+ (-> a0-21 frame-group data 0 length) -1)) + ) + (set! (-> a0-21 param 1) 1.0) + (joint-control-channel-group-eval! + a0-21 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((v1-81 (-> self skel root-channel 0))) + (set! + (-> v1-81 frame-group) + (the-as art-joint-anim (-> self draw art-group data 10)) + ) + ) + (let* ((f30-1 2.0) + (v1-83 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-84 (the-as number (logior #x3f800000 v1-83))) + ) + (countdown + (gp-2 (+ (the int (* f30-1 (+ -1.0 (the-as float v1-84)))) 3)) + (let ((a0-28 (-> self skel root-channel 0))) + (set! (-> a0-28 frame-group) (if (> (-> self skel active-channels) 0) + (-> + self + skel + root-channel + 0 + frame-group + ) + ) + ) + (set! + (-> a0-28 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-28 param 1) 1.0) + (set! (-> a0-28 frame-num) 0.0) + (joint-control-channel-group! + a0-28 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-29 (-> self skel root-channel 0))) + (set! + (-> a0-29 param 0) + (the float (+ (-> a0-29 frame-group data 0 length) -1)) + ) + (set! (-> a0-29 param 1) 1.0) + (joint-control-channel-group-eval! + a0-29 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + (let ((a0-31 (-> self skel root-channel 0))) + (set! + (-> a0-31 frame-group) + (the-as art-joint-anim (-> self draw art-group data 11)) + ) + (set! + (-> a0-31 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 11)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-31 param 1) 1.0) + (set! (-> a0-31 frame-num) 0.0) + (joint-control-channel-group! + a0-31 + (the-as art-joint-anim (-> self draw art-group data 11)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-32 (-> self skel root-channel 0))) + (set! + (-> a0-32 param 0) + (the float (+ (-> a0-32 frame-group data 0 length) -1)) + ) + (set! (-> a0-32 param 1) 1.0) + (joint-control-channel-group-eval! + a0-32 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (let* ((v1-140 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-141 (the-as number (logior #x3f800000 v1-140))) + ) + (when (< (+ -1.0 (the-as float v1-141)) 0.25) + (let ((v1-146 (-> self skel root-channel 0))) + (set! + (-> v1-146 frame-group) + (the-as art-joint-anim (-> self draw art-group data 12)) + ) + ) + (let ((a0-39 (-> self skel root-channel 0))) + (set! (-> a0-39 frame-group) (if (> (-> self skel active-channels) 0) + (-> + self + skel + root-channel + 0 + frame-group + ) + ) + ) + (set! + (-> a0-39 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-39 param 1) 1.0) + (set! (-> a0-39 frame-num) 0.0) + (joint-control-channel-group! + a0-39 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-40 (-> self skel root-channel 0))) + (set! + (-> a0-40 param 0) + (the float (+ (-> a0-40 frame-group data 0 length) -1)) + ) + (set! (-> a0-40 param 1) 1.0) + (joint-control-channel-group-eval! + a0-40 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + ) + (else + (let* ((v1-176 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-177 (the-as number (logior #x3f800000 v1-176))) + ) + (when (< (+ -1.0 (the-as float v1-177)) 0.8) + (let ((v1-182 (-> self skel root-channel 0))) + (set! + (-> v1-182 frame-group) + (the-as art-joint-anim (-> self draw art-group data 3)) + ) + ) + (let* ((f30-2 4.0) + (v1-184 + (/ (the-as int (rand-uint31-gen *random-generator*)) 256) + ) + (v1-185 (the-as number (logior #x3f800000 v1-184))) + ) + (countdown + (gp-3 (+ (the int (* f30-2 (+ -1.0 (the-as float v1-185)))) 8)) + (let ((a0-49 (-> self skel root-channel 0))) + (set! + (-> a0-49 frame-group) + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-49 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-49 param 1) 1.0) + (set! (-> a0-49 frame-num) 0.0) + (joint-control-channel-group! + a0-49 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-50 (-> self skel root-channel 0))) + (set! + (-> a0-50 param 0) + (the float (+ (-> a0-50 frame-group data 0 length) -1)) + ) + (set! (-> a0-50 param 1) 1.0) + (joint-control-channel-group-eval! + a0-50 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + (set! gp-0 #f) + ) + ) + (when + (or + gp-0 + (let* + ((v1-221 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-222 (the-as number (logior #x3f800000 v1-221))) + ) + (< (+ -1.0 (the-as float v1-222)) 0.5) + ) + ) + (let ((a0-54 (-> self skel root-channel 0))) + (set! + (-> a0-54 frame-group) + (the-as art-joint-anim (-> self draw art-group data 4)) + ) + (set! + (-> a0-54 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 4)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-54 param 1) 1.0) + (set! (-> a0-54 frame-num) 0.0) + (joint-control-channel-group! + a0-54 + (the-as art-joint-anim (-> self draw art-group data 4)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-55 (-> self skel root-channel 0))) + (set! + (-> a0-55 param 0) + (the float (+ (-> a0-55 frame-group data 0 length) -1)) + ) + (set! (-> a0-55 param 1) 1.0) + (joint-control-channel-group-eval! + a0-55 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((v1-249 (-> self skel root-channel 0))) + (set! + (-> v1-249 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + ) + (let* ((f30-3 2.0) + (v1-251 + (/ (the-as int (rand-uint31-gen *random-generator*)) 256) + ) + (v1-252 (the-as number (logior #x3f800000 v1-251))) + ) + (countdown + (gp-4 (+ (the int (* f30-3 (+ -1.0 (the-as float v1-252)))) 3)) + (let ((a0-62 (-> self skel root-channel 0))) + (set! (-> a0-62 frame-group) (if (> (-> self skel active-channels) 0) + (-> + self + skel + root-channel + 0 + frame-group + ) + ) + ) + (set! + (-> a0-62 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-62 param 1) 1.0) + (set! (-> a0-62 frame-num) 0.0) + (joint-control-channel-group! + a0-62 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-63 (-> self skel root-channel 0))) + (set! + (-> a0-63 param 0) + (the float (+ (-> a0-63 frame-group data 0 length) -1)) + ) + (set! (-> a0-63 param 1) 1.0) + (joint-control-channel-group-eval! + a0-63 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + (let ((a0-65 (-> self skel root-channel 0))) + (set! + (-> a0-65 frame-group) + (the-as art-joint-anim (-> self draw art-group data 6)) + ) + (set! + (-> a0-65 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 6)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-65 param 1) 1.0) + (set! (-> a0-65 frame-num) 0.0) + (joint-control-channel-group! + a0-65 + (the-as art-joint-anim (-> self draw art-group data 6)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-66 (-> self skel root-channel 0))) + (set! + (-> a0-66 param 0) + (the float (+ (-> a0-66 frame-group data 0 length) -1)) + ) + (set! (-> a0-66 param 1) 1.0) + (joint-control-channel-group-eval! + a0-66 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (let* ((v1-308 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-309 (the-as number (logior #x3f800000 v1-308))) + ) + (when (< (+ -1.0 (the-as float v1-309)) 0.5) + (let ((v1-314 (-> self skel root-channel 0))) + (set! + (-> v1-314 frame-group) + (the-as art-joint-anim (-> self draw art-group data 7)) + ) + ) + (let* ((f30-4 2.0) + (v1-316 + (/ (the-as int (rand-uint31-gen *random-generator*)) 256) + ) + (v1-317 (the-as number (logior #x3f800000 v1-316))) + ) + (countdown + (gp-5 (+ (the int (* f30-4 (+ -1.0 (the-as float v1-317)))) 3)) + (let ((a0-75 (-> self skel root-channel 0))) + (set! + (-> a0-75 frame-group) + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-75 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-75 param 1) 1.0) + (set! (-> a0-75 frame-num) 0.0) + (joint-control-channel-group! + a0-75 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-76 (-> self skel root-channel 0))) + (set! + (-> a0-76 param 0) + (the float (+ (-> a0-76 frame-group data 0 length) -1)) + ) + (set! (-> a0-76 param 1) 1.0) + (joint-control-channel-group-eval! + a0-76 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (none) + ) + ) + +;; definition for method 39 of type assistant-firecanyon +(defmethod should-display? assistant-firecanyon ((obj assistant-firecanyon)) + (first-any (-> obj tasks) #t) + (= (current-status (-> obj tasks)) 6) + ) + +;; definition for method 11 of type assistant-firecanyon +(defmethod + copy-defaults! + assistant-firecanyon + ((obj assistant-firecanyon) (arg0 res-lump)) + (dummy-40 + obj + arg0 + *assistant-firecanyon-sg* + 3 + 29 + (new 'static 'vector :w 4096.0) + 5 + ) + (set! (-> obj tasks) (get-task-control (game-task firecanyon-assistant))) + (first-any (-> obj tasks) #t) + (dummy-42 obj) + (none) + ) diff --git a/goal_src/levels/jungle/bouncer.gc b/goal_src/levels/jungle/bouncer.gc index 9b1fb64a5b..3e0443cf75 100644 --- a/goal_src/levels/jungle/bouncer.gc +++ b/goal_src/levels/jungle/bouncer.gc @@ -5,3 +5,302 @@ ;; name in dgo: bouncer ;; dgos: JUN, JUNGLE, L1 +(define-extern *bouncer-sg* skeleton-group) +(declare-type springbox process-drawable) +(define-extern bouncer-wait (state springbox)) ;; unknown type +(define-extern bouncer-fire (state springbox)) ;; unknown type +(define-extern bouncer-smush (state springbox)) ;; unknown type + +;; definition of type springbox +(deftype springbox (process-drawable) + ((spring-height meters :offset-assert 176) + (smush float :offset-assert 180) + ) + :heap-base #x50 + :method-count-assert 20 + :size-assert #xb8 + :flag-assert #x14005000b8 + ) + +;; failed to figure out what this is: +(method-set! springbox 12 (method-of-type process run-logic?)) + +;; failed to figure out what this is: +(let + ((v1-2 + (new 'static 'skeleton-group + :art-group-name "bounceytarp" + :bounds (new 'static 'vector :w 16384.0) + :version #x6 + ) + ) + ) + (set! (-> v1-2 jgeo) 0) + (set! (-> v1-2 janim) 2) + (set! (-> v1-2 mgeo 0) (the-as uint 1)) + (set! (-> v1-2 lod-dist 0) 4095996000.0) + (set! *bouncer-sg* v1-2) + ) + +;; failed to figure out what this is: +(defstate bouncer-wait (springbox) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'bonk) + (let ((a1-3 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-3 from) self) + (set! (-> a1-3 num-params) 3) + (set! (-> a1-3 message) 'jump) + (set! + (-> a1-3 param 0) + (the-as uint (-> self spring-height)) + ) + (set! + (-> a1-3 param 1) + (the-as uint (-> self spring-height)) + ) + (set! (-> a1-3 param 2) (the-as uint #f)) + (when (send-event-function arg0 a1-3) + (sound-play-by-name + (static-sound-name "trampoline") + (new-sound-id) + 1024 + 0 + 0 + (the-as uint 1) + (the-as vector #t) + ) + (go bouncer-fire) + ) + ) + ) + ((= v1-0 'touch) + (if + (not + (or + (= (-> self next-state name) 'bouncer-smush) + (= (-> self next-state name) 'bouncer-fire) + ) + ) + (go bouncer-smush) + ) + ) + ((= v1-0 'attack) + (when + (and + (= (-> arg3 param 1) 'flop) + (let ((a1-10 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-10 from) self) + (set! (-> a1-10 num-params) 3) + (set! (-> a1-10 message) 'jump) + (set! + (-> a1-10 param 0) + (the-as uint (-> self spring-height)) + ) + (set! + (-> a1-10 param 1) + (the-as uint (-> self spring-height)) + ) + (set! (-> a1-10 param 2) (the-as uint #f)) + (send-event-function arg0 a1-10) + ) + ) + (go bouncer-fire) + #f + ) + ) + ) + ) + ) + ) + :code + (behavior () + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 2)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) + ) + (transform-post) + (while #t + (logior! (-> self mask) (process-mask sleep)) + (suspend) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate bouncer-smush (springbox) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (case arg2 + (('touch) + (set! + (-> self state-time) + (the-as seconds (-> *display* base-frame-counter)) + ) + #f + ) + (else + ((-> bouncer-wait event) arg0 arg1 arg2 arg3) + ) + ) + ) + :code + (behavior () + (set! + (-> self state-time) + (the-as seconds (-> *display* base-frame-counter)) + ) + (set! (-> self smush) 0.0) + (while #t + (cond + ((>= + (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) + 60 + ) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 param 0) 0.0) + (set! (-> a0-1 param 1) 0.1) + (joint-control-channel-group-eval! + a0-1 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (else + (let ((gp-0 (-> self skel root-channel 0))) + (set! + (-> gp-0 param 0) + (lerp-scale + (ja-aframe 6.0 0) + (ja-aframe 2.0 0) + (vector-vector-xz-distance (target-pos 0) (-> self root trans)) + 0.0 + 4096.0 + ) + ) + (set! (-> gp-0 param 1) 0.2) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (suspend) + (if (ja-min? 0) + (go bouncer-wait) + ) + ) + (none) + ) + :post + (the-as (function none :behavior springbox) transform-post) + ) + +;; failed to figure out what this is: +(defstate bouncer-fire (springbox) + :code + (behavior () + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30) + (let ((gp-0 (-> self skel root-channel 0))) + (set! + (-> gp-0 frame-group) + (the-as art-joint-anim (-> self draw art-group data 2)) + ) + (set! + (-> gp-0 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 2)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> gp-0 param 1) 1.0) + (set! (-> gp-0 frame-num) (ja-aframe 6.0 0)) + (joint-control-channel-group! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 2)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-3 (-> self skel root-channel 0))) + (set! + (-> a0-3 param 0) + (the float (+ (-> a0-3 frame-group data 0 length) -1)) + ) + (set! (-> a0-3 param 1) 1.0) + (joint-control-channel-group-eval! + a0-3 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (go bouncer-wait) + (none) + ) + :post + (the-as (function none :behavior springbox) transform-post) + ) + +;; definition for method 11 of type springbox +(defmethod copy-defaults! springbox ((obj springbox) (arg0 res-lump)) + (let + ((s4-0 + (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) + ) + ) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) nothing) + (let + ((s3-0 + (new + 'process + 'collide-shape-prim-mesh + s4-0 + (the-as uint 0) + (the-as uint 0) + ) + ) + ) + (set! (-> s3-0 prim-core collide-as) (the-as uint 128)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 0) + (set-vector! (-> s3-0 local-sphere) 0.0 3072.0 0.0 6963.2) + ) + (dummy-46 s4-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (dummy-50 s4-0) + (set! (-> obj root) s4-0) + ) + (process-drawable-from-entity! obj arg0) + (dummy-14 obj *bouncer-sg* '()) + (nav-mesh-connect obj (-> obj root) (the-as nav-control #f)) + (set! + (-> obj spring-height) + (res-lump-float arg0 'spring-height :default 45056.0) + ) + (go bouncer-wait) + (none) + ) diff --git a/goal_src/levels/jungle/hopper.gc b/goal_src/levels/jungle/hopper.gc index e686ec5233..ab69f555de 100644 --- a/goal_src/levels/jungle/hopper.gc +++ b/goal_src/levels/jungle/hopper.gc @@ -5,3 +5,739 @@ ;; name in dgo: hopper ;; dgos: JUN, JUNGLE, L1 +(define-extern *hopper-sg* skeleton-group) + +;; definition of type hopper +(deftype hopper (nav-enemy) + ((jump-length float :offset-assert 400) + (shadow-min-y float :offset-assert 404) + ) + :heap-base #x130 + :method-count-assert 76 + :size-assert #x198 + :flag-assert #x4c01300198 + ) + +;; failed to figure out what this is: +(let + ((v1-1 + (new 'static 'skeleton-group + :art-group-name "hopper" + :bounds (new 'static 'vector :w 12288.0) + :max-lod 2 + :longest-edge (meters 1.0) + :version #x6 + :shadow 4 + ) + ) + ) + (set! (-> v1-1 jgeo) 0) + (set! (-> v1-1 janim) 5) + (set! (-> v1-1 mgeo 0) (the-as uint 1)) + (set! (-> v1-1 lod-dist 0) 81920.0) + (set! (-> v1-1 mgeo 1) (the-as uint 2)) + (set! (-> v1-1 lod-dist 1) 163840.0) + (set! (-> v1-1 mgeo 2) (the-as uint 3)) + (set! (-> v1-1 lod-dist 2) 4095996000.0) + (set! *hopper-sg* v1-1) + ) + +;; failed to figure out what this is: +nav-enemy-default-event-handler + +;; definition for method 39 of type hopper +;; INFO: Return type mismatch int vs none. +(defmethod TODO-RENAME-39 hopper ((obj hopper)) + (let ((v1-1 (-> obj draw shadow-ctrl))) + (set! + (-> v1-1 settings bot-plane w) + (- (- (-> obj shadow-min-y) (-> obj collide-info trans y))) + ) + ) + 0 + ((the-as (function nav-enemy none) (find-parent-method hopper 39)) obj) + 0 + (none) + ) + +;; definition for function hopper-find-ground +;; INFO: Return type mismatch int vs object. +;; Used lq/sq +(defbehavior hopper-find-ground hopper ((arg0 vector)) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (let ((t1-0 (new 'stack-no-clear 'bone)) + (f30-0 61440.0) + ) + (set! (-> s5-0 quad) (-> arg0 quad)) + (set! (-> s5-0 y) (+ 20480.0 (-> s5-0 y))) + (let + ((f0-2 + (dummy-12 + *collide-cache* + s5-0 + f30-0 + (the-as uint 1) + self + t1-0 + (the-as uint 1) + ) + ) + ) + (if (< f0-2 0.0) + (return (the-as object #f)) + ) + (set! (-> s5-0 y) (- (-> s5-0 y) (* f0-2 f30-0))) + ) + ) + (set! (-> arg0 quad) (-> s5-0 quad)) + ) + 0 + ) + +;; definition for function hopper-jump-to +;; INFO: Return type mismatch int vs none. +;; Used lq/sq +(defbehavior hopper-jump-to hopper ((arg0 vector)) + (set! (-> self jump-dest quad) (-> arg0 quad)) + (hopper-find-ground (-> self jump-dest)) + (set! + (-> self shadow-min-y) + (+ + (fmin (-> self collide-info trans y) (-> self jump-dest y)) + (-> self nav-info shadow-min-y) + ) + ) + (nav-enemy-initialize-custom-jump + (-> self jump-dest) + #f + (-> self nav-info jump-height-min) + (-> self nav-info jump-height-factor) + -409600.0 + ) + (set! (-> self nav-enemy-flags) (logand -513 (-> self nav-enemy-flags))) + (set! (-> self nav-enemy-flags) (logand -1025 (-> self nav-enemy-flags))) + (logior! (-> self nav-enemy-flags) 16) + (set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags))) + (when (not (nav-enemy-facing-point? (-> self jump-dest) 5461.3335)) + (ja-channel-push! 1 60) + (nav-enemy-turn-to-face-point (-> self jump-dest) 1820.4445) + ) + (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) + (nav-enemy-execute-jump) + (set! + (-> self shadow-min-y) + (+ (-> self collide-info trans y) (-> self nav-info shadow-min-y)) + ) + (set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags))) + (nav-enemy-jump-land-anim) + 0 + (none) + ) + +;; definition for function hopper-do-jump +;; INFO: Return type mismatch int vs none. +(defbehavior hopper-do-jump hopper () + (dummy-11 (-> self nav) (-> self nav target-pos)) + (if (< (-> self jump-length) (vector-length (-> self nav travel))) + (vector-normalize! (-> self nav travel) (-> self jump-length)) + ) + (vector+! + (-> self jump-dest) + (-> self collide-info trans) + (-> self nav travel) + ) + (hopper-jump-to (-> self jump-dest)) + 0 + (none) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-idle (hopper) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior hopper) + nav-enemy-default-event-handler + ) + :code + (behavior () + (ja-channel-push! 1 22) + (while #t + (dotimes (gp-0 3) + (let ((a0-1 (-> self skel root-channel 0))) + (set! + (-> a0-1 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + (set! + (-> a0-1 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 5)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-1 param 1) 1.0) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! + a0-1 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! + (-> a0-2 param 0) + (the float (+ (-> a0-2 frame-group data 0 length) -1)) + ) + (set! (-> a0-2 param 1) 1.0) + (joint-control-channel-group-eval! + a0-2 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (let ((a0-4 (-> self skel root-channel 0))) + (set! + (-> a0-4 frame-group) + (the-as art-joint-anim (-> self draw art-group data 6)) + ) + (set! + (-> a0-4 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 6)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-4 param 1) 1.0) + (set! (-> a0-4 frame-num) 0.0) + (joint-control-channel-group! + a0-4 + (the-as art-joint-anim (-> self draw art-group data 6)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-5 (-> self skel root-channel 0))) + (set! + (-> a0-5 param 0) + (the float (+ (-> a0-5 frame-group data 0 length) -1)) + ) + (set! (-> a0-5 param 1) 1.0) + (joint-control-channel-group-eval! + a0-5 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-patrol (hopper) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior hopper) + nav-enemy-jump-event-handler + ) + :trans + (behavior () + (if (zero? (logand (-> self nav-enemy-flags) 8)) + ((-> (method-of-type nav-enemy nav-enemy-patrol) trans)) + ) + (none) + ) + :code + (behavior () + (vector-reset! (-> self collide-info transv)) + (set! (-> self jump-length) 16384.0) + (set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags))) + (while #t + (cond + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 7) + ) + (ja-channel-push! 1 20) + (let ((a0-6 (-> self skel root-channel 0))) + (set! + (-> a0-6 frame-group) + (the-as art-joint-anim (-> self draw art-group data 8)) + ) + (set! + (-> a0-6 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 8)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-6 param 1) 1.0) + (set! (-> a0-6 frame-num) 0.0) + (joint-control-channel-group! + a0-6 + (the-as art-joint-anim (-> self draw art-group data 8)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-7 (-> self skel root-channel 0))) + (set! + (-> a0-7 param 0) + (the float (+ (-> a0-7 frame-group data 0 length) -1)) + ) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! + a0-7 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (ja-channel-push! 1 30) + ) + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 9) + ) + (ja-channel-push! 1 30) + (let ((a0-15 (-> self skel root-channel 0))) + (set! + (-> a0-15 frame-group) + (the-as art-joint-anim (-> self draw art-group data 10)) + ) + (set! + (-> a0-15 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 10)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-15 param 1) 1.0) + (set! (-> a0-15 frame-num) 0.0) + (joint-control-channel-group! + a0-15 + (the-as art-joint-anim (-> self draw art-group data 10)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-16 (-> self skel root-channel 0))) + (set! + (-> a0-16 param 0) + (the float (+ (-> a0-16 frame-group data 0 length) -1)) + ) + (set! (-> a0-16 param 1) 1.0) + (joint-control-channel-group-eval! + a0-16 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (ja-channel-push! 1 30) + ) + (else + (ja-channel-push! 1 22) + ) + ) + (set! + (-> self state-time) + (the-as seconds (-> *display* base-frame-counter)) + ) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) + ) + (until + (>= + (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) + 150 + ) + (suspend) + (let ((a0-21 (-> self skel root-channel 0))) + (set! (-> a0-21 param 0) 1.0) + (joint-control-channel-group-eval! + a0-21 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + ) + (when + (or + (logtest? (nav-control-flags bit19) (-> self nav flags)) + (< 2.0 (-> self nav block-count)) + ) + (set! (-> self nav block-count) 0.0) + (logior! (-> self nav flags) (nav-control-flags bit10)) + (nav-enemy-get-new-patrol-point) + (set! (-> self nav target-pos quad) (-> self nav destination-pos quad)) + ) + (hopper-do-jump) + ) + (none) + ) + :post + (the-as (function none :behavior hopper) nav-enemy-jump-post) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-notice (hopper) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior hopper) + nav-enemy-default-event-handler + ) + :code + (behavior () + (go-virtual nav-enemy-chase) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-chase (hopper) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior hopper) + nav-enemy-jump-event-handler + ) + :trans + (behavior () + (if (zero? (logand (-> self nav-enemy-flags) 8)) + ((-> (method-of-type nav-enemy nav-enemy-chase) trans)) + ) + (none) + ) + :code + (behavior () + (vector-reset! (-> self collide-info transv)) + (set! (-> self jump-length) 32768.0) + (set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags))) + (while #t + (cond + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 7) + ) + (ja-channel-push! 1 20) + (let ((a0-6 (-> self skel root-channel 0))) + (set! + (-> a0-6 frame-group) + (the-as art-joint-anim (-> self draw art-group data 8)) + ) + (set! + (-> a0-6 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 8)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-6 param 1) 1.0) + (set! (-> a0-6 frame-num) 0.0) + (joint-control-channel-group! + a0-6 + (the-as art-joint-anim (-> self draw art-group data 8)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-7 (-> self skel root-channel 0))) + (set! + (-> a0-7 param 0) + (the float (+ (-> a0-7 frame-group data 0 length) -1)) + ) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! + a0-7 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (ja-channel-push! 1 30) + ) + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 9) + ) + (ja-channel-push! 1 30) + (let ((a0-15 (-> self skel root-channel 0))) + (set! + (-> a0-15 frame-group) + (the-as art-joint-anim (-> self draw art-group data 10)) + ) + (set! + (-> a0-15 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 10)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-15 param 1) 1.0) + (set! (-> a0-15 frame-num) 0.0) + (joint-control-channel-group! + a0-15 + (the-as art-joint-anim (-> self draw art-group data 10)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-16 (-> self skel root-channel 0))) + (set! + (-> a0-16 param 0) + (the float (+ (-> a0-16 frame-group data 0 length) -1)) + ) + (set! (-> a0-16 param 1) 1.0) + (joint-control-channel-group-eval! + a0-16 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (ja-channel-push! 1 30) + ) + (else + (ja-channel-push! 1 22) + ) + ) + (set! + (-> self state-time) + (the-as seconds (-> *display* base-frame-counter)) + ) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) + ) + (until + (>= + (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) + 60 + ) + (suspend) + (let ((a0-21 (-> self skel root-channel 0))) + (set! (-> a0-21 param 0) 1.0) + (joint-control-channel-group-eval! + a0-21 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + ) + (set! (-> self nav target-pos quad) (-> (target-pos 0) quad)) + (hopper-do-jump) + ) + (none) + ) + :post + (the-as (function none :behavior hopper) nav-enemy-jump-post) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-stop-chase (hopper) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior hopper) + nav-enemy-default-event-handler + ) + :code + (behavior () + (go-virtual nav-enemy-stare) + (none) + ) + ) + +;; definition for symbol *hopper-nav-enemy-info*, type nav-enemy-info +(define + *hopper-nav-enemy-info* + (new 'static 'nav-enemy-info + :idle-anim 5 + :walk-anim 5 + :turn-anim 9 + :notice-anim 5 + :run-anim 5 + :jump-anim 7 + :jump-land-anim 8 + :victory-anim 6 + :taunt-anim 6 + :die-anim 11 + :neck-joint -1 + :player-look-at-joint 5 + :run-travel-speed (meters 10.0) + :run-rotate-speed (degrees 7999.9995) + :run-acceleration (meters 1.0) + :run-turn-time #x1e + :walk-travel-speed (meters 6.0) + :walk-rotate-speed (degrees 7999.9995) + :walk-acceleration (meters 1.0) + :walk-turn-time #x1e + :attack-shove-back (meters 3.0) + :attack-shove-up (meters 2.0) + :shadow-size (meters 2.0) + :notice-nav-radius (meters 1.0) + :nav-nearest-y-threshold (meters 10.0) + :notice-distance (meters 30.0) + :stop-chase-distance (meters 40.0) + :frustration-distance (meters 8.0) + :frustration-time #x4b0 + :die-anim-hold-frame 10000000000.0 + :jump-anim-start-frame 3.0 + :jump-land-anim-end-frame 10000000000.0 + :jump-height-min (meters 3.0) + :jump-height-factor 0.5 + :jump-start-anim-speed 1.0 + :shadow-max-y (meters 1.0) + :shadow-min-y (meters -1.0) + :shadow-locus-dist (meters 150.0) + :use-align #t + :draw-shadow #t + :move-to-ground #t + :hover-if-no-ground #f + :use-momentum #f + :use-flee #t + :use-proximity-notice #f + :use-jump-blocked #f + :use-jump-patrol #f + :gnd-collide-with #x1 + :debug-draw-neck #f + :debug-draw-jump #t + ) + ) + +;; definition for method 47 of type hopper +;; INFO: Return type mismatch int vs none. +(defmethod TODO-RENAME-47 hopper ((obj hopper)) + (let + ((s5-0 + (new + 'process + 'collide-shape-moving + obj + (collide-list-enum usually-hit-by-player) + ) + ) + ) + (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s5-0 reaction) default-collision-reaction) + (set! (-> s5-0 no-reaction) nothing) + (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) + (set! (-> s4-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s4-0 collide-with) (the-as uint 16)) + (set! (-> s4-0 prim-core action) (the-as uint 1)) + (set-vector! (-> s4-0 local-sphere) 0.0 4096.0 0.0 10240.0) + (dummy-46 s5-0) + (let ((s3-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 1) + (set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 4096.0) + ) + (dummy-28 s4-0) + (let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) + (set! (-> s3-1 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-1 collide-with) (the-as uint 16)) + (set! (-> s3-1 prim-core action) (the-as uint 1)) + (set! (-> s3-1 prim-core offense) 1) + (set-vector! (-> s3-1 local-sphere) 0.0 6963.2 0.0 4096.0) + ) + (dummy-28 s4-0) + ) + (set! (-> s5-0 nav-radius) 6144.0) + (dummy-50 s5-0) + (set! (-> s5-0 max-iteration-count) (the-as uint 2)) + (set! (-> obj collide-info) s5-0) + ) + 0 + (none) + ) + +;; definition for method 48 of type hopper +;; INFO: Return type mismatch int vs none. +(defmethod TODO-RENAME-48 hopper ((obj hopper)) + (dummy-14 obj *hopper-sg* '()) + (TODO-RENAME-45 obj *hopper-nav-enemy-info*) + (set! + (-> obj shadow-min-y) + (+ (-> obj collide-info trans y) (-> obj nav-info shadow-min-y)) + ) + 0 + (none) + ) + diff --git a/goal_src/levels/jungle/jungle-elevator.gc b/goal_src/levels/jungle/jungle-elevator.gc index 7b132be65e..9ab272136d 100644 --- a/goal_src/levels/jungle/jungle-elevator.gc +++ b/goal_src/levels/jungle/jungle-elevator.gc @@ -5,3 +5,216 @@ ;; name in dgo: jungle-elevator ;; dgos: JUN, JUNGLE, L1 +(define-extern *plat-button-sg* skeleton-group) + +;; definition of type jungle-elevator +(deftype jungle-elevator (plat-button) + ((bottom-height float :offset-assert 240) + (teleport-if-below-y float :offset-assert 244) + (teleport-if-above-y float :offset-assert 248) + ) + :heap-base #x90 + :method-count-assert 33 + :size-assert #xfc + :flag-assert #x21009000fc + ) + +;; definition for method 26 of type jungle-elevator +(defmethod can-activate? jungle-elevator ((obj jungle-elevator)) + (and + ((method-of-type plat-button can-activate?) obj) + (task-complete? *game-info* (game-task jungle-tower)) + ) + ) + +;; failed to figure out what this is: +(defstate plat-button-move-downward (jungle-elevator) + :virtual #t + :enter + (behavior () + (let + ((t9-0 (-> (method-of-type plat-button plat-button-move-downward) enter))) + (if t9-0 + (t9-0) + ) + ) + (set! (-> self draw light-index) (the-as uint 255)) + (set! (-> self bottom-height) (-> jungle bottom-height)) + (set! (-> jungle bottom-height) (-> jungleb bottom-height)) + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 1) + (set! (-> a1-0 message) 'reset-pickup) + (set! (-> a1-0 param 0) (the-as uint 'eco)) + (send-event-function *target* a1-0) + ) + (none) + ) + :exit + (behavior () + (set! (-> jungle bottom-height) (-> self bottom-height)) + (let + ((t9-0 (-> (method-of-type plat-button plat-button-move-downward) exit))) + (if t9-0 + (t9-0) + ) + ) + (none) + ) + :trans + (behavior () + (let ((s5-0 (new 'stack-no-clear 'vector)) + (gp-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s5-0 quad) (-> self root-override trans quad)) + (let + ((t9-1 + (-> + (the-as (state plat-button) (find-parent-method jungle-elevator 23)) + trans + ) + ) + ) + (if t9-1 + (t9-1) + ) + ) + (vector-! gp-0 (-> self root-override trans) s5-0) + ) + (when (< (-> self path-pos) 0.9) + (TODO-RENAME-28 (-> *target* control)) + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) self) + (set! (-> a1-2 num-params) 0) + (set! (-> a1-2 message) 'reset-height) + (send-event-function *target* a1-2) + ) + ) + (if + (and + (>= (-> self path-pos) 0.2) + (< + (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) + 60 + ) + ) + (load-commands-set! *level* (load-command-get-index *level* 'jungle 0)) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate plat-button-move-upward (jungle-elevator) + :virtual #t + :enter + (behavior () + (let ((t9-0 (-> (method-of-type plat-button plat-button-move-upward) enter))) + (if t9-0 + (t9-0) + ) + ) + (set! (-> self draw light-index) (the-as uint 255)) + (set! (-> self bottom-height) (-> jungle bottom-height)) + (set! (-> jungle bottom-height) (-> jungleb bottom-height)) + (set! (-> self grab-player?) (process-grab? *target*)) + (none) + ) + :exit + (behavior () + (set! (-> jungle bottom-height) (-> self bottom-height)) + (let ((t9-0 (-> (method-of-type plat-button plat-button-move-upward) exit))) + (if t9-0 + (t9-0) + ) + ) + (none) + ) + :trans + (behavior () + (let ((t9-0 (-> (method-of-type plat-button plat-button-move-upward) trans))) + (if t9-0 + (t9-0) + ) + ) + (if + (and + (< (-> self path-pos) 0.8) + (< + (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) + 60 + ) + ) + (load-commands-set! *level* (load-command-get-index *level* 'jungle 1)) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate plat-button-at-end (jungle-elevator) + :virtual #t + :code + (behavior () + (cond + ((!= (-> self path-pos) 0.0) + (set! (-> self draw light-index) (the-as uint 1)) + (let ((a1-1 (res-lump-struct (-> self entity) 'continue-name structure))) + (when a1-1 + (let ((v1-4 (set-continue! *game-info* (the-as basic a1-1)))) + (load-commands-set! *level* (-> v1-4 load-commands)) + ) + ) + ) + ) + (else + (set! (-> self draw light-index) (the-as uint 255)) + (load-commands-set! *level* '()) + ) + ) + (let ((t9-4 (-> (method-of-type plat-button plat-button-at-end) code))) + (if t9-4 + ((the-as (function none :behavior plat-button) t9-4)) + ) + ) + (none) + ) + ) + +;; definition for method 30 of type jungle-elevator +(defmethod should-teleport? jungle-elevator ((obj jungle-elevator)) + (let ((f0-0 (-> (camera-pos) y))) + (case (-> obj path-pos) + ((0.0) + (when (< f0-0 (-> obj teleport-if-below-y)) + (set! (-> obj draw light-index) (the-as uint 1)) + (return #t) + ) + ) + ((1.0) + (when (< (-> obj teleport-if-above-y) f0-0) + (set! (-> obj draw light-index) (the-as uint 255)) + (return #t) + ) + ) + ) + ) + #f + ) + +;; definition for method 29 of type jungle-elevator +(defmethod can-target-move? jungle-elevator ((obj jungle-elevator)) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (eval-path-curve! (-> obj path) s5-0 0.4 'interp) + (set! (-> obj teleport-if-above-y) (-> s5-0 y)) + (eval-path-curve! (-> obj path) s5-0 0.6 'interp) + (set! (-> obj teleport-if-below-y) (-> s5-0 y)) + ) + (set! (-> obj draw light-index) (the-as uint 255)) + (set! (-> obj bidirectional?) #f) + (let ((v0-2 #t)) + (set! (-> obj should-grab-player?) v0-2) + v0-2 + ) + ) + diff --git a/goal_src/levels/jungle/junglefish.gc b/goal_src/levels/jungle/junglefish.gc index 80a2c2ddab..0d2eceb2f3 100644 --- a/goal_src/levels/jungle/junglefish.gc +++ b/goal_src/levels/jungle/junglefish.gc @@ -5,3 +5,647 @@ ;; name in dgo: junglefish ;; dgos: JUN, JUNGLE, L1 +(define-extern *junglefish-sg* skeleton-group) + +;; definition of type junglefish +(deftype junglefish (nav-enemy) + () + :heap-base #x120 + :method-count-assert 76 + :size-assert #x190 + :flag-assert #x4c01200190 + ) + +;; failed to figure out what this is: +(let + ((v1-1 + (new 'static 'skeleton-group + :art-group-name "junglefish" + :bounds + (new 'static 'vector :y 4096.0 :w 6144.0) + :max-lod 2 + :version #x6 + ) + ) + ) + (set! (-> v1-1 jgeo) 0) + (set! (-> v1-1 janim) 4) + (set! (-> v1-1 mgeo 0) (the-as uint 1)) + (set! (-> v1-1 lod-dist 0) 81920.0) + (set! (-> v1-1 mgeo 1) (the-as uint 2)) + (set! (-> v1-1 lod-dist 1) 163840.0) + (set! (-> v1-1 mgeo 2) (the-as uint 3)) + (set! (-> v1-1 lod-dist 2) 4095996000.0) + (set! *junglefish-sg* v1-1) + ) + +;; failed to figure out what this is: +nav-enemy-default-event-handler + +;; definition for method 39 of type junglefish +;; INFO: Return type mismatch int vs none. +(defmethod TODO-RENAME-39 junglefish ((obj junglefish)) + ((method-of-object (-> obj water) dummy-10)) + ((the-as (function nav-enemy none) (find-parent-method junglefish 39)) obj) + 0 + (none) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-patrol (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :exit + (behavior () + (set! (-> self target-speed) (-> self nav-info walk-travel-speed)) + (none) + ) + :code + (behavior () + (ja-channel-push! 1 60) + (let ((f30-0 (nav-enemy-rnd-float-range 0.9 1.1))) + (while #t + (let ((a0-2 (-> self skel root-channel 0))) + (set! + (-> a0-2 frame-group) + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info walk-anim)) + ) + ) + (set! + (-> a0-2 param 0) + (the + float + (+ + (-> + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info walk-anim)) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-2 param 1) f30-0) + (set! (-> a0-2 frame-num) 0.0) + (joint-control-channel-group! + a0-2 + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info walk-anim)) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-3 (-> self skel root-channel 0))) + (set! + (-> a0-3 param 0) + (the float (+ (-> a0-3 frame-group data 0 length) -1)) + ) + (set! (-> a0-3 param 1) f30-0) + (joint-control-channel-group-eval! + a0-3 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (when (nav-enemy-rnd-go-idle? 0.2) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 param 0) 1.0) + (joint-control-channel-group! + a0-6 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + (ja-channel-push! 1 180) + (set! (-> self target-speed) 0.0) + (let ((a0-8 (-> self skel root-channel 0))) + (set! + (-> a0-8 frame-group) + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info idle-anim)) + ) + ) + (set! + (-> a0-8 param 0) + (the + float + (+ + (-> + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info idle-anim)) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-8 param 1) f30-0) + (set! (-> a0-8 frame-num) 0.0) + (joint-control-channel-group! + a0-8 + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info idle-anim)) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (ja-blend-eval) + (suspend) + (let ((a0-9 (-> self skel root-channel 0))) + (set! + (-> a0-9 param 0) + (the float (+ (-> a0-9 frame-group data 0 length) -1)) + ) + (set! (-> a0-9 param 1) f30-0) + (joint-control-channel-group-eval! + a0-9 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (until (not (nav-enemy-rnd-go-idle? 0.2)) + (let ((a0-11 (-> self skel root-channel 0))) + (set! + (-> a0-11 frame-group) + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info idle-anim)) + ) + ) + (set! + (-> a0-11 param 0) + (the + float + (+ + (-> + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info idle-anim)) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-11 param 1) f30-0) + (set! (-> a0-11 frame-num) 0.0) + (joint-control-channel-group! + a0-11 + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info idle-anim)) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-12 (-> self skel root-channel 0))) + (set! + (-> a0-12 param 0) + (the float (+ (-> a0-12 frame-group data 0 length) -1)) + ) + (set! (-> a0-12 param 1) f30-0) + (joint-control-channel-group-eval! + a0-12 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (set! (-> self target-speed) (-> self nav-info walk-travel-speed)) + (let ((a0-15 (-> self skel root-channel 0))) + (set! (-> a0-15 param 0) 1.0) + (joint-control-channel-group! + a0-15 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + (ja-channel-push! 1 180) + (let ((a0-17 (-> self skel root-channel 0))) + (set! + (-> a0-17 frame-group) + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info walk-anim)) + ) + ) + (set! + (-> a0-17 param 0) + (the + float + (+ + (-> + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info walk-anim)) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-17 param 1) f30-0) + (set! (-> a0-17 frame-num) 0.0) + (joint-control-channel-group! + a0-17 + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info walk-anim)) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (ja-blend-eval) + (suspend) + (let ((a0-18 (-> self skel root-channel 0))) + (set! + (-> a0-18 param 0) + (the float (+ (-> a0-18 frame-group data 0 length) -1)) + ) + (set! (-> a0-18 param 1) f30-0) + (joint-control-channel-group-eval! + a0-18 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-notice (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :code + (behavior () + (go-virtual nav-enemy-chase) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-chase (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :trans + (behavior () + ((-> (method-of-type nav-enemy nav-enemy-chase) trans)) + (if + (and + *target* + (>= + 8192.0 + (vector-vector-distance + (-> self collide-info trans) + (-> *target* control trans) + ) + ) + ) + (go-virtual nav-enemy-attack) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-stop-chase (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :code + (behavior () + (go-virtual nav-enemy-patrol) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-stare (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :code + (behavior () + (go-virtual nav-enemy-patrol) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-give-up (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :code + (behavior () + (go-virtual nav-enemy-patrol) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-attack (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :code + (behavior () + (ja-channel-push! 1 30) + (let ((a0-1 (-> self skel root-channel 0))) + (set! + (-> a0-1 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + (set! + (-> a0-1 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 5)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-1 param 1) 1.0) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! + a0-1 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! + (-> a0-2 param 0) + (the float (+ (-> a0-2 frame-group data 0 length) -1)) + ) + (set! (-> a0-2 param 1) 1.0) + (joint-control-channel-group-eval! + a0-2 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (go-virtual nav-enemy-chase) + (none) + ) + :post + (the-as (function none :behavior junglefish) nav-enemy-chase-post) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-victory (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :code + (behavior () + (ja-channel-push! 1 22) + (let ((a0-1 (-> self skel root-channel 0))) + (set! + (-> a0-1 frame-group) + (the-as art-joint-anim (-> self draw art-group data 4)) + ) + (set! + (-> a0-1 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 4)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-1 param 1) 2.0) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! + a0-1 + (the-as art-joint-anim (-> self draw art-group data 4)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! + (-> a0-2 param 0) + (the float (+ (-> a0-2 frame-group data 0 length) -1)) + ) + (set! (-> a0-2 param 1) 2.0) + (joint-control-channel-group-eval! + a0-2 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((a0-4 (-> self skel root-channel 0))) + (set! + (-> a0-4 frame-group) + (the-as art-joint-anim (-> self draw art-group data 4)) + ) + (set! + (-> a0-4 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 4)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-4 param 1) 2.0) + (set! (-> a0-4 frame-num) 0.0) + (joint-control-channel-group! + a0-4 + (the-as art-joint-anim (-> self draw art-group data 4)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-5 (-> self skel root-channel 0))) + (set! + (-> a0-5 param 0) + (the float (+ (-> a0-5 frame-group data 0 length) -1)) + ) + (set! (-> a0-5 param 1) 2.0) + (joint-control-channel-group-eval! + a0-5 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (go-virtual nav-enemy-patrol) + (none) + ) + ) + +;; definition for symbol *junglefish-nav-enemy-info*, type nav-enemy-info +(define + *junglefish-nav-enemy-info* + (new 'static 'nav-enemy-info + :idle-anim 4 + :walk-anim 4 + :turn-anim -1 + :notice-anim 4 + :run-anim 4 + :jump-anim -1 + :jump-land-anim -1 + :victory-anim 4 + :taunt-anim 4 + :die-anim 6 + :neck-joint -1 + :player-look-at-joint 5 + :run-travel-speed (meters 5.5) + :run-rotate-speed (degrees 720.0) + :run-acceleration (meters 6.0) + :run-turn-time #x2d + :walk-travel-speed (meters 4.0) + :walk-rotate-speed (degrees 720.0) + :walk-acceleration (meters 6.0) + :walk-turn-time #x2d + :attack-shove-back (meters 1.0) + :attack-shove-up (meters 0.5) + :shadow-size (meters 2.0) + :notice-nav-radius (meters 1.0) + :nav-nearest-y-threshold (meters 10.0) + :notice-distance (meters 25.0) + :stop-chase-distance (meters 35.0) + :frustration-distance (meters 8.0) + :frustration-time #x4b0 + :die-anim-hold-frame 10000000000.0 + :jump-land-anim-end-frame 10000000000.0 + :jump-height-min (meters 1.0) + :jump-height-factor 0.5 + :jump-start-anim-speed 1.0 + :shadow-max-y (meters 1.0) + :shadow-min-y (meters -1.0) + :shadow-locus-dist (meters 150.0) + :use-align #f + :draw-shadow #f + :move-to-ground #f + :hover-if-no-ground #f + :use-momentum #t + :use-flee #f + :use-proximity-notice #f + :use-jump-blocked #f + :use-jump-patrol #f + :gnd-collide-with #x1 + :debug-draw-neck #f + :debug-draw-jump #f + ) + ) + +;; definition for method 11 of type junglefish +(defmethod copy-defaults! junglefish ((obj junglefish) (arg0 res-lump)) + (let + ((s4-0 + (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) + ) + ) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) nothing) + (let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 3)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 1) + (set-vector! (-> s3-0 local-sphere) 0.0 3276.8 0.0 2457.6) + ) + (dummy-46 s4-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (dummy-50 s4-0) + (set! (-> obj collide-info) s4-0) + ) + (process-drawable-from-entity! obj arg0) + (dummy-14 obj *junglefish-sg* '()) + (TODO-RENAME-45 obj *junglefish-nav-enemy-info*) + (set! (-> obj water) (new 'process 'water-control obj 7 0.0 8192.0 2048.0)) + (set! (-> obj water flags) (the-as uint 2)) + (set! (-> obj water height) (res-lump-float (-> obj entity) 'water-height)) + (set! (-> obj water ripple-size) 5734.4) + (set! (-> obj collide-info trans y) (+ -4096.0 (-> obj water height))) + (go (method-of-object obj nav-enemy-idle)) + (none) + ) diff --git a/goal_src/levels/misty/bonelurker.gc b/goal_src/levels/misty/bonelurker.gc index 27ce297ba6..901fbb7a48 100644 --- a/goal_src/levels/misty/bonelurker.gc +++ b/goal_src/levels/misty/bonelurker.gc @@ -5,3 +5,5 @@ ;; name in dgo: bonelurker ;; dgos: L1, MIS +;; TODO - for sidekick-human +(define-extern *bonelurker-sg* skeleton-group) diff --git a/goal_src/levels/misty/sidekick-human.gc b/goal_src/levels/misty/sidekick-human.gc index 9ba1ba5981..0b193ab597 100644 --- a/goal_src/levels/misty/sidekick-human.gc +++ b/goal_src/levels/misty/sidekick-human.gc @@ -5,3 +5,6741 @@ ;; name in dgo: sidekick-human ;; dgos: L1, MIS +(define-extern *darkecocan-sg* skeleton-group) +(define-extern *darkecocan-glow-sg* skeleton-group) +(define-extern *evilbro-sg* skeleton-group) +(define-extern *evilsis-sg* skeleton-group) +(define-extern *sidekick-human-sg* skeleton-group) + +;; definition of type sequenceA +(deftype sequenceA (process-hidden) + () + :method-count-assert 15 + :size-assert #x70 + :flag-assert #xf00000070 + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 657) + (new 'static 'sparticle-launch-group + :length 8 + :duration #xbb8 + :linger-duration #x5dc + :flags #x4 + :name "group-2d-intro-mist" + :launcher + (new 'static 'inline-array sparticle-group-item 8 + (new 'static 'sparticle-group-item + :launcher #xa69 + :period #x12c + :length #x5 + :binding #xa67 + ) + (new 'static 'sparticle-group-item + :launcher #xa67 + :flags #xc + :binding #xa68 + ) + (new 'static 'sparticle-group-item + :launcher #xa67 + :flags #xc + :binding #xa68 + ) + (new 'static 'sparticle-group-item :launcher #xa68 :flags #x4) + (new 'static 'sparticle-group-item :launcher #xa68 :flags #x4) + (new 'static 'sparticle-group-item :launcher #xa68 :flags #x4) + (new 'static 'sparticle-group-item :launcher #xa6a) + (new 'static 'sparticle-group-item :launcher #xa6b) + ) + :bounds (new 'static 'sphere :w 8192.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2665) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 13 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201200) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :initial-value -970981376 + :random-range #x46a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -977272832 + :random-range #x46400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value #x415a740e + :random-range #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x258 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value 8 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x3c + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2663) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 20 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :initial-value #x45000000 + :random-range #x444ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :random-range #x42c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x18 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x19 + :flags #x2 + :initial-value -1017482226 + :random-range 1 + :random-mult #x43da740e + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1063329782 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x2 + :initial-value -1034259442 + :random-range 1 + :random-mult #x42da740e + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x258 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x8c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2664) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 16 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45000000 + :random-range #x4499999a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42000000 + :random-range #x42c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1064333800 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :random-range -1106522267 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 30 + :random-range #x12b + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value 12 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #xf0 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value #xc6) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2667) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 12 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x203600) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :initial-value -965083136 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x47700000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x47400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 5 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2666) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3e99999a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :initial-value -964689920 + :random-range #x47000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -968884224 + :random-range #x46c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :random-range #x465ac000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x46c00000 + :random-range #x47000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x46c00000 + :random-range #x47000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x41800000 + :random-range #x42a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x41800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x41800000 + :random-range #x43160000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1059425266 + :random-range #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1051036658 + :random-range #x41da740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3e5a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x5dc + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x96 + :random-range #x95 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #xa6c + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2668) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 4 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x12c + :random-range #x12b + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #xa6d + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2669) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1101368306 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 557) + (new 'static 'sparticle-launch-group + :length #x101 + :duration #x384 + :linger-duration #x5dc + :flags #x1 + :name "group-evilsib-appear" + :launcher + (new 'static 'inline-array sparticle-group-item 257 + (new 'static 'sparticle-group-item + :launcher #x929 + :period #x5dc + :length #x14 + :offset #x5dc + ) + (new 'static 'sparticle-group-item + :launcher #x92a + :period #x5dc + :length #x14 + :offset #x5dc + ) + (new 'static 'sparticle-group-item + :launcher #x92b + :period #x5dc + :length #x5 + :offset #x5dc + ) + (new 'static 'sparticle-group-item + :launcher #x92c + :period #x5dc + :length #x14 + :offset #x5dc + ) + (new 'static 'sparticle-group-item + :launcher #x92d + :period #x5dc + :length #x384 + :offset #x2ee + :binding #x928 + ) + (new 'static 'sparticle-group-item + :launcher #x92e + :period #x5dc + :length #x2ee + :offset #x258 + :binding #x928 + ) + (new 'static 'sparticle-group-item + :launcher #x92f + :period #x5dc + :length #x258 + :offset #x1c2 + :binding #x928 + ) + (new 'static 'sparticle-group-item + :launcher #x92f + :period #x5dc + :length #x1c2 + :offset #x12c + :binding #x928 + ) + (new 'static 'sparticle-group-item + :launcher #x930 + :period #x5dc + :length #x12c + :offset #x96 + :binding #x928 + ) + (new 'static 'sparticle-group-item + :launcher #x930 + :period #x5dc + :length #x96 + :binding #x928 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + ) + :bounds (new 'static 'sphere :w 262144.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2349) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 18 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -981467136 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1039031628 + :random-range #x4291a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x258 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4000 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2353) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1101368306 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2350) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -981467136 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1039031628 + :random-range #x4291a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3e5a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x258 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x931 + ) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2351) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x4499999a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :random-range #x46000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1039031628 + :random-range #x4291a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3e5a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x258 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x931 + ) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2352) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -989855744 + :random-range #x45800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1039031628 + :random-range #x4291a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3e5a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x258 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x931 + ) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2344) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 24 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :initial-value #x46a00000 + :random-range #x45c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x434ccccd + :random-range #x434ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x18 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x19 + :flags #x1 + :initial-value -1013468122 + :random-range #x4417b426 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1b + :flags #x1 + :initial-value -1032469873 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x4003126f + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1027461563 + :random-range #x43422e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x408c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x10e + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x932 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2354) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1068708659 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2345) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 25 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x45800000 + :random-range #x46000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x43cccccd + :random-range #x444ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43400000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :random-range #x445a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1070677186 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value -1092979698 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1087454402 + :random-range -1067813874 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2d + :flags #x1 + :initial-value #x3f4ccccd + :random-range #x3d4ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x5dc + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4005 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 30 + :random-range #x2ed + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x933 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3c + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :random-range #x46000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2355) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 3 + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2346) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 25 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :random-range #x46400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x43cccccd + :random-range #x44cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43400000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :random-range #x42da740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1070677186 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value -1092979698 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1087454402 + :random-range -1067813874 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2d + :flags #x1 + :initial-value #x3f400000 + :random-range #x3d4ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x5dc + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4005 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 30 + :random-range #x2ed + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x933 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3c + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :initial-value #x45000000 + :random-range #x45800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2347) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 14 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201200) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x46000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x47e00000 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43400000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value -1072369143 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1072369143 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 5 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2348) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 17 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x40000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x45000000 + :random-range #x46000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x44800000 + :random-range #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42000000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x1 + :initial-value #x4519999a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x21 + :flags #x1 + :initial-value -1073182583 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value -1073182583 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1081571191 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 60 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 558) + (new 'static 'sparticle-launch-group + :length 79 + :duration #xbb8 + :linger-duration #x5dc + :flags #x1 + :name "group-evilsib-hover" + :launcher + (new 'static 'inline-array sparticle-group-item 79 + (new 'static 'sparticle-group-item :launcher #x952 :binding #x951) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + ) + :bounds (new 'static 'sphere :w 32768.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2386) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 11 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x44800000 + :random-range #x45c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x444ccccd + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1073540497 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4000 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2385) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 25 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :initial-value #x44800000 + :random-range #x44800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x434ccccd + :random-range #x42cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x18 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x19 + :flags #x1 + :initial-value -1019868320 + :random-range #x43b60b60 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1b + :flags #x1 + :initial-value #x41360b61 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x3f91a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1027461563 + :random-range #x43422e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x40888889 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x408c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 30 + :random-range 14 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x954 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2388) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 4 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x96 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x955 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2389) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 5 + (new 'static 'sp-field-init-spec + :field #x1b + :flags #x1 + :initial-value -1039628151 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1076202482 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1081571191 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2384) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 17 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201200) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3dcccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x44cccccd + :random-range #x444ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1024081265 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1027461563 + :random-range #x43422e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1063675494 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1079065794 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 15 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 560) + (new 'static 'sparticle-launch-group + :length 1 + :duration #x384 + :linger-duration #x5dc + :flags #x1 + :name "group-sequenceC-glowing-can" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (new 'static 'sparticle-group-item :launcher #x8fa) + ) + :bounds (new 'static 'sphere :w 262144.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2298) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 18 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :initial-value -998244352 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -998244352 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :initial-value -998244352 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45800000 + :random-range #x45800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x42c00000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42000000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1017482226 + :random-range #x43da740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1092979698 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x96 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value 12 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 561) + (new 'static 'sparticle-launch-group + :length 69 + :duration #x384 + :linger-duration #x5dc + :flags #x1 + :name "group-sequenceC-exploding-can" + :launcher + (new 'static 'inline-array sparticle-group-item 69 + (new 'static 'sparticle-group-item + :launcher #xae1 + :period #x708 + :length #x5 + ) + (new 'static 'sparticle-group-item + :launcher #xae2 + :period #x708 + :length #x28 + ) + (new 'static 'sparticle-group-item + :launcher #xae3 + :period #x708 + :length #x14 + ) + (new 'static 'sparticle-group-item + :launcher #xae4 + :period #x708 + :length #x14 + ) + (new 'static 'sparticle-group-item + :launcher #xb0e + :fade-after (meters 100.0) + :period #x258 + :length #x5 + :binding #x128 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + ) + :bounds (new 'static 'sphere :w 262144.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2830) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 16 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201200) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :initial-value -973078528 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x45800000 + :random-range #x46000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :initial-value -973078528 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value #x435a740e + :random-range #x42da740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1079065794 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2d + :flags #x1 + :initial-value #x3f70a3d7 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #xf0 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value 8 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :random-range #x46c71c72 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2786) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 22 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x41400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -977272832 + :random-range #x46400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x44cccccd + :random-range #x454ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43000000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42000000 + :random-range #x42c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value #x4323d70a + :random-range #x4423d70a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1053899970 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1087454402 + :random-range -1087454402 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2d + :flags #x1 + :initial-value #x3f666666 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 30 + :random-range 89 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #xae5 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :random-range #x46aaaaab + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :initial-value #x46000000 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2789) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1081571191 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2788) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 14 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x41400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x4499999a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x47400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43000000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x1 + :initial-value #x45851eb8 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1077097267 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 60 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2785) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 12 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201200) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x47c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43400000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1072369143 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 54 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2787) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 23 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x41800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -977272832 + :random-range #x46400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x46400000 + :random-range #x45c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :random-range #x42c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value #x43a3d70a + :random-range #x4323d70a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x42a3d70a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1025870834 + :random-range #x435a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1097751884 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value #x3f2ec33e + :random-range #x3f2ec33e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2d + :flags #x1 + :initial-value #x3f4ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x1fe + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :random-range #x46aaaaab + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 562) + (new 'static 'sparticle-launch-group + :length 36 + :duration #x384 + :linger-duration #x5dc + :flags #x1 + :name "group-sequenceC-dark-splash" + :launcher + (new 'static 'inline-array sparticle-group-item 36 + (new 'static 'sparticle-group-item + :launcher #x127 + :fade-after (meters 100.0) + :period #x258 + :length #x5 + :binding #x128 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x82f + :period #x258 + :length #x5 + ) + (new 'static 'sparticle-group-item + :launcher #x830 + :fade-after (meters 80.0) + :falloff-to (meters 80.0) + :period #x258 + :length #x28 + ) + (new 'static 'sparticle-group-item + :launcher #x831 + :period #x258 + :length #x14 + ) + ) + :bounds (new 'static 'sphere :w 262144.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 681) + (new 'static 'sparticle-launch-group + :length 1 + :duration #x5 + :linger-duration #x384 + :flags #x1 + :name "group-sequenceC-blow-dust" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (new 'static 'sparticle-group-item :launcher #xae6) + ) + :bounds (new 'static 'sphere :w 262144.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2790) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 24 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x43cccccd + :random-range #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43000000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x42c00000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value #x42888889 + :random-range #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x41da740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1017482226 + :random-range #x43da740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3ecccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value #x3faec33e + :random-range -1079065794 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2d + :flags #x1 + :initial-value #x3f6b851f + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value 12 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 15 + :random-range 44 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #xb06 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :initial-value #x46a0b60b + :random-range #x43b60b61 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :initial-value -988923676 + :random-range #x452aaaab + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :initial-value #x4499999a + :random-range -989855744 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2822) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1110651699 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; definition of type sequenceB +(deftype sequenceB (process-taskable) + ((bonelurker handle :offset-assert 384) + (evilbro handle :offset-assert 392) + (evilsis handle :offset-assert 400) + (lurker-army handle 9 :offset-assert 408) + ) + :heap-base #x170 + :method-count-assert 53 + :size-assert #x1e0 + :flag-assert #x35017001e0 + ) + +;; definition of type sequenceC +(deftype sequenceC (process-taskable) + ((bonelurker handle :offset-assert 384) + (darkecocan handle :offset-assert 392) + (darkecocan-glowing-look lod-set :inline :offset-assert 400) + ) + :heap-base #x150 + :method-count-assert 53 + :size-assert #x1b1 + :flag-assert #x35015001b1 + ) + +;; failed to figure out what this is: +(let + ((v1-46 + (new 'static 'skeleton-group + :art-group-name "sidekick-human" + :bounds (new 'static 'vector :w 10240.0) + :version #x6 + :shadow 2 + ) + ) + ) + (set! (-> v1-46 jgeo) 0) + (set! (-> v1-46 janim) 3) + (set! (-> v1-46 mgeo 0) (the-as uint 1)) + (set! (-> v1-46 lod-dist 0) 4095996000.0) + (set! *sidekick-human-sg* v1-46) + ) + +;; failed to figure out what this is: +(let + ((v1-47 + (new 'static 'skeleton-group + :art-group-name "darkecocan" + :bounds (new 'static 'vector :w 4096.0) + :version #x6 + ) + ) + ) + (set! (-> v1-47 jgeo) 0) + (set! (-> v1-47 janim) 4) + (set! (-> v1-47 mgeo 0) (the-as uint 1)) + (set! (-> v1-47 lod-dist 0) 4095996000.0) + (set! *darkecocan-sg* v1-47) + ) + +;; failed to figure out what this is: +(let + ((v1-48 + (new 'static 'skeleton-group + :art-group-name "darkecocan" + :bounds (new 'static 'vector :w 4096.0) + :version #x6 + ) + ) + ) + (set! (-> v1-48 jgeo) 2) + (set! (-> v1-48 janim) 4) + (set! (-> v1-48 mgeo 0) (the-as uint 3)) + (set! (-> v1-48 lod-dist 0) 4095996000.0) + (set! *darkecocan-glow-sg* v1-48) + ) + +;; failed to figure out what this is: +(let + ((v1-49 + (new 'static 'skeleton-group + :art-group-name "evilbro" + :bounds (new 'static 'vector :w 4096.0) + :version #x6 + ) + ) + ) + (set! (-> v1-49 jgeo) 0) + (set! (-> v1-49 janim) 3) + (set! (-> v1-49 mgeo 0) (the-as uint 1)) + (set! (-> v1-49 lod-dist 0) 4095996000.0) + (set! *evilbro-sg* v1-49) + ) + +;; failed to figure out what this is: +(let + ((v1-50 + (new 'static 'skeleton-group + :art-group-name "evilsis" + :bounds (new 'static 'vector :w 4096.0) + :version #x6 + ) + ) + ) + (set! (-> v1-50 jgeo) 0) + (set! (-> v1-50 janim) 3) + (set! (-> v1-50 mgeo 0) (the-as uint 1)) + (set! (-> v1-50 lod-dist 0) 4095996000.0) + (set! *evilsis-sg* v1-50) + ) + +;; definition of type army-info +(deftype army-info (structure) + ((pos vector :offset-assert 0) + (rot float :offset-assert 4) + (start-frame float :offset-assert 8) + (skel symbol :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) + +;; definition for symbol *lurker-army*, type (array army-info) +(define + *lurker-army* + (the-as (array army-info) + (new + 'static + 'boxed-array + :type army-info :length 9 :allocated-length 9 + (new 'static 'army-info + :pos + (new 'static 'vector :x -920633.4 :y 83546.11 :z 4210409.5) + :rot 28556.04 + :skel 'babak + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -873488.4 :y 86441.984 :z 4225454.0) + :rot 37861.24 + :start-frame 5.0 + :skel 'babak + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -905871.4 :y 83132.414 :z 4231934.0) + :rot 32054.021 + :start-frame 10.0 + :skel 'babak + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -926765.06 :y 83496.96 :z 4236230.5) + :rot 30001.652 + :start-frame 15.0 + :skel 'babak + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -893345.8 :y 83517.44 :z 4212961.5) + :rot 32755.074 + :start-frame 20.0 + :skel 'babak + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -842797.06 :y 84041.73 :z 4218855.5) + :rot 43916.402 + :skel 'bonelurker + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -839274.5 :y 82644.99 :z 4248723.5) + :rot 40510.715 + :start-frame 6.0 + :skel 'bonelurker + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -871485.44 :y 85909.51 :z 4243181.5) + :rot 37046.043 + :start-frame 12.0 + :skel 'bonelurker + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -947523.56 :y 85835.77 :z 4219314.0) + :rot 26980.078 + :start-frame 18.0 + :skel 'bonelurker + ) + ) + ) + ) + +;; definition for function evilsib-trans-hook-hover +;; INFO: Return type mismatch int vs none. +(defbehavior evilsib-trans-hook-hover evilbro () + 0 + (none) + ) + +;; definition for function evilsib-trans-hook-wait +;; INFO: Return type mismatch int vs none. +(defbehavior evilsib-trans-hook-wait evilbro () + (when (>= (ja-aframe-num 0) 425.0) + (let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-0 + (let ((t9-2 (method-of-type part-tracker activate))) + (t9-2 + (the-as part-tracker gp-0) + *entity-pool* + 'part-tracker + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + gp-0 + part-tracker-init + (-> *part-group-id-table* 557) + -1 + #f + #f + #f + (-> self draw origin) + ) + (-> gp-0 ppointer) + ) + ) + (let ((a1-3 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-3 from) self) + (set! (-> a1-3 num-params) 1) + (set! (-> a1-3 message) 'trans-hook) + (set! (-> a1-3 param 0) (the-as uint evilsib-trans-hook-hover)) + (send-event-function self a1-3) + ) + ) + 0 + (none) + ) + +;; definition for method 32 of type sequenceB +(defmethod play-anim! sequenceB ((obj sequenceB) (arg0 symbol)) + (with-pp + (cond + (arg0 + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) pp) + (set! (-> a1-1 num-params) 1) + (set! (-> a1-1 message) 'sidekick) + (set! (-> a1-1 param 0) (the-as uint #f)) + (send-event-function *target* a1-1) + ) + (let ((s5-0 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> obj bonelurker) (ppointer->handle (when s5-0 + (let + ((t9-2 + (method-of-type + manipy + activate + ) + ) + ) + (t9-2 + (the-as manipy s5-0) + obj + 'manipy + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s5-0 + manipy-init + (-> obj root trans) + (-> obj entity) + *bonelurker-sg* + #f + ) + (-> s5-0 ppointer) + ) + ) + ) + ) + (let ((a1-5 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-5 from) pp) + (set! (-> a1-5 num-params) 1) + (set! (-> a1-5 message) 'anim-mode) + (set! (-> a1-5 param 0) (the-as uint 'clone-anim)) + (send-event-function (handle->process (-> obj bonelurker)) a1-5) + ) + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) pp) + (set! (-> a1-6 num-params) 1) + (set! (-> a1-6 message) 'center-joint) + (set! (-> a1-6 param 0) (the-as uint 3)) + (send-event-function (handle->process (-> obj bonelurker)) a1-6) + ) + (set-setting! + *setting-control* + pp + 'music-volume-movie + 'abs + (the-as float 0.0) + 0 + ) + (set-setting! + *setting-control* + pp + 'sfx-volume-movie + 'abs + (the-as float 0.0) + 0 + ) + (set-setting! + *setting-control* + pp + 'ambient-volume-movie + 'abs + (the-as float 0.0) + 0 + ) + (dotimes (s5-1 9) + (let ((s4-0 (-> *lurker-army* s5-1))) + (cond + ((= (-> s4-0 skel) 'bonelurker) + (let ((s3-0 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> obj lurker-army s5-1) (ppointer->handle (when s3-0 + (let + ((t9-10 + (method-of-type + manipy + activate + ) + ) + ) + (t9-10 + (the-as + manipy + s3-0 + ) + obj + 'manipy + (the-as + pointer + #x70004000 + ) + ) + ) + (run-now-in-process + s3-0 + manipy-init + (-> s4-0 pos) + (-> obj entity) + *bonelurker-sg* + #f + ) + (-> s3-0 ppointer) + ) + ) + ) + ) + (let ((s3-1 (handle->process (-> obj lurker-army s5-1)))) + (when s3-1 + (set! (-> (the-as babak s3-1) draw light-index) (the-as uint 1)) + (set! + (-> (the-as babak s3-1) draw level-index) + (the-as uint (-> (level-get *level* 'misty) index)) + ) + ) + ) + ) + (else + (let ((s3-2 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> obj lurker-army s5-1) (ppointer->handle (when s3-2 + (let + ((t9-14 + (method-of-type + manipy + activate + ) + ) + ) + (t9-14 + (the-as + manipy + s3-2 + ) + obj + 'manipy + (the-as + pointer + #x70004000 + ) + ) + ) + (run-now-in-process + s3-2 + manipy-init + (-> s4-0 pos) + (-> obj entity) + *babak-sg* + #f + ) + (-> s3-2 ppointer) + ) + ) + ) + ) + (let ((s3-3 (handle->process (-> obj lurker-army s5-1)))) + (when s3-3 + (set! (-> (the-as babak s3-3) draw light-index) (the-as uint 1)) + (set! + (-> (the-as babak s3-3) draw level-index) + (the-as uint (-> (level-get *level* 'misty) index)) + ) + ) + ) + (let ((a1-20 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-20 from) pp) + (set! (-> a1-20 num-params) 2) + (set! (-> a1-20 message) 'art-joint-anim) + (set! (-> a1-20 param 0) (the-as uint "idle")) + (set! (-> a1-20 param 1) (the-as uint 0)) + (send-event-function + (handle->process (-> obj lurker-army s5-1)) + a1-20 + ) + ) + ) + ) + (let ((a1-21 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-21 from) pp) + (set! (-> a1-21 num-params) 1) + (set! (-> a1-21 message) 'rot) + (set! (-> a1-21 param 0) (the-as uint (-> s4-0 rot))) + (send-event-function (handle->process (-> obj lurker-army s5-1)) a1-21) + ) + ) + ) + ) + ((!= (level-status *level* 'intro) 'active) + (return (get-art-elem obj)) + ) + ) + (new 'static 'spool-anim + :name "sidekick-human-intro-sequence-b" + :index 5 + :parts 11 + :command-list + '( + (0 + blackout + 0 + ) + (0 + setting-reset + ocean-off + near + ) + (0 + want-levels + misty + intro + ) + (0 + display-level + intro + special + ) + (0 + kill + "money-1404" + ) + (0 + kill + "money-1405" + ) + (0 + kill + "money-1406" + ) + (0 + kill + "money-1407" + ) + (0 + kill + "money-1551" + ) + (0 + kill + "money-1552" + ) + (0 + kill + "money-1553" + ) + (0 + kill + "balloonlurker-9" + ) + (0 + kill + "balloonlurker-10" + ) + (0 + kill + "balloonlurker-11" + ) + (0 + kill + "balloonlurker-12" + ) + (0 + kill + "balloonlurker-13" + ) + (0 + kill + "balloonlurker-14" + ) + (0 + kill + "keg-conveyor-8" + ) + (0 + kill + "mistycannon-8" + ) + (0 + kill + "muse-2" + ) + (0 + kill + "mud-1" + ) + (0 + kill + "mud-2" + ) + (0 + kill + "mud-3" + ) + (0 + kill + "mud-4" + ) + (0 + kill + "mud-5" + ) + (0 + kill + "mud-6" + ) + (0 + kill + "mud-7" + ) + (0 + kill + "mud-8" + ) + (0 + kill + "mud-9" + ) + (0 + kill + "mud-10" + ) + (0 + kill + "mud-11" + ) + (0 + kill + "dark-eco-pool-11" + ) + (0 + kill + "sharkey-32" + ) + (0 + kill + "sharkey-34" + ) + (0 + kill + "sharkey-39" + ) + (0 + kill + "sharkey-41" + ) + (0 + kill + "bonelurker-14" + ) + (0 + kill + "bonelurker-15" + ) + (0 + kill + "bonelurker-16" + ) + (0 + kill + "bonelurker-17" + ) + (0 + kill + "bonelurker-18" + ) + (0 + kill + "bonelurker-19" + ) + (0 + kill + "bonelurker-20" + ) + (0 + kill + "bonelurker-21" + ) + (0 + kill + "bonelurker-22" + ) + (0 + kill + "bonelurker-23" + ) + (0 + kill + "bonelurker-24" + ) + (0 + kill + "bonelurker-26" + ) + (0 + kill + "babak-with-cannon-5" + ) + (0 + kill + "babak-200" + ) + (0 + kill + "babak-201" + ) + (0 + kill + "babak-202" + ) + (0 + kill + "babak-203" + ) + (0 + kill + "babak-204" + ) + (0 + kill + "babak-205" + ) + (0 + kill + "babak-206" + ) + (0 + kill + "babak-207" + ) + (0 + kill + "babak-208" + ) + (0 + kill + "babak-209" + ) + (0 + kill + "babak-212" + ) + (0 + kill + "quicksandlurker-5" + ) + (0 + kill + "boatpaddle-4" + ) + (0 + kill + "silostep-7" + ) + (0 + kill + "silostep-8" + ) + (0 + kill + "silostep-9" + ) + (0 + kill + "silostep-10" + ) + (0 + kill + "orb-cache-top-15" + ) + (0 + kill + "windturbine-11" + ) + (0 + kill + "teetertotter-5" + ) + (0 + kill + "bone-platform-4" + ) + (0 + kill + "misty-battle-controller-1" + ) + ((the binteger 30) + send-event + self + offset-army + ) + ((the binteger 196) + joint + "cameraB" + ) + ((the binteger 196) + shadow + target + #f + ) + ((the binteger 196) + shadow + self + #f + ) + ((the binteger 380) + send-event + self + evilbro + ) + ((the binteger 385) + send-event + "evilbro" + draw + #t + ) + ((the binteger 385) + send-event + "evilsis" + draw + #t + ) + ((the binteger 397) + joint + "camera" + ) + ((the binteger 410) + setting-reset + ocean-off + #t + ) + ((the binteger 456) + joint + "cameraB" + ) + ((the binteger 546) + joint + "camera" + ) + ((the binteger 701) + joint + "cameraB" + ) + ((the binteger 701) + setting-reset + ocean-off + near + ) + ((the binteger 776) + joint + "camera" + ) + ((the binteger 776) + setting-reset + ocean-off + #t + ) + ((the binteger 937) + joint + "cameraB" + ) + ((the binteger 1027) + joint + "camera" + ) + ((the binteger 1122) + joint + "cameraB" + ) + ((the binteger 1221) + joint + "cameraB" + ) + ((the binteger 1221) + setting-reset + ocean-off + near + ) + ((the binteger 1280) + alive + "sequenceC-1" + ) + ((the binteger 1281) + save + ) + ((the binteger 1281) + shadow + target + #t + ) + ((the binteger 1281) setting-unset ocean-off) + ) + ) + ) + ) + +;; definition for method 31 of type sequenceB +(defmethod get-art-elem sequenceB ((obj sequenceB)) + (-> obj draw art-group data 3) + ) + +;; failed to figure out what this is: +(defstate play-anim (sequenceB) + :virtual #t + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (case arg2 + (('offset-army) + (dotimes (gp-0 9) + (let ((v1-3 (-> *lurker-army* gp-0)) + (a1-1 (new 'stack-no-clear 'event-message-block)) + ) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 1) + (set! (-> a1-1 message) 'set-frame-num) + (set! (-> a1-1 param 0) (the-as uint (-> v1-3 start-frame))) + (send-event-function (handle->process (-> self lurker-army gp-0)) a1-1) + ) + ) + #f + ) + (('evilbro) + (when (= (level-status *level* 'intro) 'active) + (let ((gp-2 (entity-by-name "evilbro-2"))) + (when gp-2 + (let ((s5-0 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> self evilbro) (ppointer->handle (when s5-0 + (let + ((t9-4 + (method-of-type + manipy + activate + ) + ) + ) + (t9-4 + (the-as manipy s5-0) + self + 'manipy + (the-as + pointer + #x70004000 + ) + ) + ) + (run-now-in-process + s5-0 + manipy-init + (-> self root trans) + gp-2 + *evilbro-sg* + #f + ) + (-> s5-0 ppointer) + ) + ) + ) + ) + (let ((gp-3 (handle->process (-> self evilbro)))) + (when gp-3 + (set! (-> (the-as evilbro gp-3) draw light-index) (the-as uint 1)) + (set! + (-> (the-as evilbro gp-3) draw level-index) + (the-as uint (-> (level-get *level* 'misty) index)) + ) + ) + ) + (let ((a1-8 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-8 from) self) + (set! (-> a1-8 num-params) 1) + (set! (-> a1-8 message) 'anim-mode) + (set! (-> a1-8 param 0) (the-as uint 'clone-anim)) + (send-event-function (handle->process (-> self evilbro)) a1-8) + ) + (let ((a1-9 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-9 from) self) + (set! (-> a1-9 num-params) 1) + (set! (-> a1-9 message) 'blend-shape) + (set! (-> a1-9 param 0) (the-as uint #t)) + (send-event-function (handle->process (-> self evilbro)) a1-9) + ) + (let ((a1-10 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-10 from) self) + (set! (-> a1-10 num-params) 1) + (set! (-> a1-10 message) 'center-joint) + (set! (-> a1-10 param 0) (the-as uint 3)) + (send-event-function (handle->process (-> self evilbro)) a1-10) + ) + (let ((a1-11 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-11 from) self) + (set! (-> a1-11 num-params) 1) + (set! (-> a1-11 message) 'trans-hook) + (set! (-> a1-11 param 0) (the-as uint evilsib-trans-hook-wait)) + (send-event-function (handle->process (-> self evilbro)) a1-11) + ) + (let ((a1-12 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-12 from) self) + (set! (-> a1-12 num-params) 1) + (set! (-> a1-12 message) 'draw) + (set! (-> a1-12 param 0) (the-as uint #f)) + (send-event-function (handle->process (-> self evilbro)) a1-12) + ) + (let ((a1-13 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-13 from) self) + (set! (-> a1-13 num-params) 1) + (set! (-> a1-13 message) 'eval) + (set! + (-> a1-13 param 0) + (the-as + uint + (lambda :behavior sequenceB + () + (let + ((v0-0 (create-launch-control (-> *part-group-id-table* 558) self)) + ) + (set! (-> self part) v0-0) + v0-0 + ) + ) + ) + ) + (send-event-function (handle->process (-> self evilbro)) a1-13) + ) + ) + ) + (let ((gp-4 (entity-by-name "evilsis-2"))) + (when gp-4 + (let ((s5-1 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> self evilsis) (ppointer->handle (when s5-1 + (let + ((t9-15 + (method-of-type + manipy + activate + ) + ) + ) + (t9-15 + (the-as manipy s5-1) + self + 'manipy + (the-as + pointer + #x70004000 + ) + ) + ) + (run-now-in-process + s5-1 + manipy-init + (-> self root trans) + gp-4 + *evilsis-sg* + #f + ) + (-> s5-1 ppointer) + ) + ) + ) + ) + (let ((gp-5 (handle->process (-> self evilsis)))) + (when gp-5 + (set! (-> (the-as evilsis gp-5) draw light-index) (the-as uint 1)) + (set! + (-> (the-as evilsis gp-5) draw level-index) + (the-as uint (-> (level-get *level* 'misty) index)) + ) + ) + ) + (let ((a1-19 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-19 from) self) + (set! (-> a1-19 num-params) 1) + (set! (-> a1-19 message) 'anim-mode) + (set! (-> a1-19 param 0) (the-as uint 'clone-anim)) + (send-event-function (handle->process (-> self evilsis)) a1-19) + ) + (let ((a1-20 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-20 from) self) + (set! (-> a1-20 num-params) 1) + (set! (-> a1-20 message) 'blend-shape) + (set! (-> a1-20 param 0) (the-as uint #t)) + (send-event-function (handle->process (-> self evilsis)) a1-20) + ) + (let ((a1-21 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-21 from) self) + (set! (-> a1-21 num-params) 1) + (set! (-> a1-21 message) 'center-joint) + (set! (-> a1-21 param 0) (the-as uint 3)) + (send-event-function (handle->process (-> self evilsis)) a1-21) + ) + (let ((a1-22 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-22 from) self) + (set! (-> a1-22 num-params) 1) + (set! (-> a1-22 message) 'trans-hook) + (set! (-> a1-22 param 0) (the-as uint evilsib-trans-hook-wait)) + (send-event-function (handle->process (-> self evilsis)) a1-22) + ) + (let ((a1-23 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-23 from) self) + (set! (-> a1-23 num-params) 1) + (set! (-> a1-23 message) 'draw) + (set! (-> a1-23 param 0) (the-as uint #f)) + (send-event-function (handle->process (-> self evilsis)) a1-23) + ) + (let ((a1-24 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-24 from) self) + (set! (-> a1-24 num-params) 1) + (set! (-> a1-24 message) 'eval) + (set! + (-> a1-24 param 0) + (the-as + uint + (lambda :behavior sequenceB + () + (let + ((v0-0 (create-launch-control (-> *part-group-id-table* 558) self)) + ) + (set! (-> self part) v0-0) + v0-0 + ) + ) + ) + ) + (send-event-function (handle->process (-> self evilsis)) a1-24) + ) + ) + ) + ) + ) + ) + ) + :exit + (behavior () + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 1) + (set! (-> a1-0 message) 'sidekick) + (set! (-> a1-0 param 0) (the-as uint #t)) + (send-event-function *target* a1-0) + ) + (let ((a0-2 (handle->process (-> self bonelurker)))) + (if a0-2 + (deactivate a0-2) + ) + ) + (let ((a0-6 (handle->process (-> self evilbro)))) + (if a0-6 + (deactivate a0-6) + ) + ) + (let ((a0-10 (handle->process (-> self evilsis)))) + (if a0-10 + (deactivate a0-10) + ) + ) + (dotimes (gp-0 9) + (let ((a0-14 (handle->process (-> self lurker-army gp-0)))) + (if a0-14 + (deactivate a0-14) + ) + ) + ) + ((-> (method-of-type process-taskable play-anim) exit)) + (let ((gp-1 (entity-by-name "sequenceC-1"))) + (set-blackout-frames 6000) + (let ((a1-5 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-5 from) self) + (set! (-> a1-5 num-params) 0) + (set! (-> a1-5 message) 'clear-entity) + (send-event-function *camera* a1-5) + ) + (entity-birth-no-kill gp-1) + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) self) + (set! (-> a1-6 num-params) 0) + (set! (-> a1-6 message) 'play-anim) + (send-event-function (if gp-1 + (-> gp-1 extra process) + ) + a1-6 + ) + ) + ) + (none) + ) + :trans + (behavior () + (spool-push + *art-control* + "sidekick-human-intro-sequence-c" + 0 + self + (the-as float -1.0) + ) + ((-> (method-of-type process-taskable play-anim) trans)) + (none) + ) + ) + +;; definition for method 39 of type sequenceB +(defmethod should-display? sequenceB ((obj sequenceB)) + #f + ) + +;; definition for method 11 of type sequenceB +(defmethod copy-defaults! sequenceB ((obj sequenceB) (arg0 res-lump)) + (dummy-40 + obj + arg0 + *sidekick-human-sg* + 3 + 44 + (new 'static 'vector :w 4096.0) + -1 + ) + (set! (-> obj tasks) (get-task-control (game-task intro))) + (set! (-> obj bonelurker) (the-as handle #f)) + (set! (-> obj evilbro) (the-as handle #f)) + (set! (-> obj evilsis) (the-as handle #f)) + (dotimes (v1-2 9) + (set! (-> obj lurker-army v1-2) (the-as handle #f)) + ) + (dummy-42 obj) + (none) + ) + +;; definition for function sequenceC-can-trans-hook-2 +;; INFO: Return type mismatch int vs none. +(defbehavior sequenceC-can-trans-hook-2 sequenceC () + (let ((gp-0 (new 'stack-no-clear 'vector))) + (vector<-cspace! gp-0 (-> self node-list data 4)) + (dummy-11 (-> self part) gp-0) + ) + (when (>= (ja-aframe-num 0) 1590.0) + (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-1 + (let ((t9-4 (method-of-type part-tracker activate))) + (t9-4 + (the-as part-tracker gp-1) + *entity-pool* + 'part-tracker + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + gp-1 + part-tracker-init + (-> *part-group-id-table* 561) + -1 + #f + #f + #f + (-> self draw origin) + ) + (-> gp-1 ppointer) + ) + ) + (let ((a1-5 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-5 from) self) + (set! (-> a1-5 num-params) 1) + (set! (-> a1-5 message) 'trans-hook) + (set! (-> a1-5 param 0) (the-as uint nothing)) + (send-event-function self a1-5) + ) + ) + 0 + (none) + ) + +;; definition for function sequenceC-can-trans-hook +;; INFO: Return type mismatch int vs none. +(defbehavior sequenceC-can-trans-hook sequenceC () + (when (>= (ja-aframe-num 0) 1055.0) + (dummy-11 + (-> self draw) + (&-> (the-as process-taskable (-> self parent 0)) stack 288) + ) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 1) + (set! (-> a1-1 message) 'trans-hook) + (set! (-> a1-1 param 0) (the-as uint sequenceC-can-trans-hook-2)) + (send-event-function self a1-1) + ) + (set-vector! (-> self draw color-emissive) 0.5 0.0 0.0 0.0) + ) + 0 + (none) + ) + +;; definition for method 32 of type sequenceC +;; INFO: Return type mismatch spool-anim vs basic. +(defmethod play-anim! sequenceC ((obj sequenceC) (arg0 symbol)) + (with-pp + (when arg0 + (set-setting! + *setting-control* + pp + 'music-volume-movie + 'abs + (the-as float 0.0) + 0 + ) + (set-setting! + *setting-control* + pp + 'sfx-volume-movie + 'abs + (the-as float 0.0) + 0 + ) + (set-setting! + *setting-control* + pp + 'ambient-volume-movie + 'abs + (the-as float 0.0) + 0 + ) + (let ((s5-0 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> obj bonelurker) (ppointer->handle (when s5-0 + (let + ((t9-4 + (method-of-type + manipy + activate + ) + ) + ) + (t9-4 + (the-as manipy s5-0) + obj + 'manipy + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s5-0 + manipy-init + (-> obj root trans) + (-> obj entity) + *bonelurker-sg* + #f + ) + (-> s5-0 ppointer) + ) + ) + ) + ) + (let ((a1-7 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-7 from) pp) + (set! (-> a1-7 num-params) 1) + (set! (-> a1-7 message) 'anim-mode) + (set! (-> a1-7 param 0) (the-as uint 'clone-anim)) + (send-event-function (handle->process (-> obj bonelurker)) a1-7) + ) + (let ((a1-8 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-8 from) pp) + (set! (-> a1-8 num-params) 1) + (set! (-> a1-8 message) 'center-joint) + (set! (-> a1-8 param 0) (the-as uint 3)) + (send-event-function (handle->process (-> obj bonelurker)) a1-8) + ) + (let ((s5-1 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> obj darkecocan) (ppointer->handle (when s5-1 + (let + ((t9-9 + (method-of-type + manipy + activate + ) + ) + ) + (t9-9 + (the-as manipy s5-1) + obj + 'manipy + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s5-1 + manipy-init + (-> obj root trans) + (-> obj entity) + *darkecocan-sg* + #f + ) + (-> s5-1 ppointer) + ) + ) + ) + ) + (let ((a1-12 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-12 from) pp) + (set! (-> a1-12 num-params) 1) + (set! (-> a1-12 message) 'anim-mode) + (set! (-> a1-12 param 0) (the-as uint 'clone-anim)) + (send-event-function (handle->process (-> obj darkecocan)) a1-12) + ) + (let ((a1-13 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-13 from) pp) + (set! (-> a1-13 num-params) 1) + (set! (-> a1-13 message) 'center-joint) + (set! (-> a1-13 param 0) (the-as uint 3)) + (send-event-function (handle->process (-> obj darkecocan)) a1-13) + ) + (let ((a1-14 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-14 from) pp) + (set! (-> a1-14 num-params) 1) + (set! (-> a1-14 message) 'trans-hook) + (set! (-> a1-14 param 0) (the-as uint sequenceC-can-trans-hook)) + (send-event-function (handle->process (-> obj darkecocan)) a1-14) + ) + (let ((a1-15 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-15 from) pp) + (set! (-> a1-15 num-params) 1) + (set! (-> a1-15 message) 'eval) + (set! + (-> a1-15 param 0) + (the-as + uint + (lambda :behavior sequenceC + () + (let + ((a0-0 (&-> (the-as process-taskable (-> self parent 0)) stack 288)) + (t9-0 (method-of-type lod-set dummy-9)) + ) + *darkecocan-glow-sg* + (-> self draw art-group) + (-> (the-as process-taskable (-> self parent 0)) entity) + (t9-0 (the-as lod-set a0-0)) + ) + (let + ((v0-1 (create-launch-control (-> *part-group-id-table* 560) self))) + (set! (-> self part) v0-1) + v0-1 + ) + ) + ) + ) + (send-event-function (handle->process (-> obj darkecocan)) a1-15) + ) + ) + (the-as + basic + (new 'static 'spool-anim + :name "sidekick-human-intro-sequence-c" + :index 6 + :parts 22 + :command-list + '( + (0 + blackout + 0 + ) + (0 + kill + "fuel-cell-11" + ) + (0 + kill + "fuel-cell-50" + ) + (0 + kill + "money-1561" + ) + (0 + kill + "money-1562" + ) + (0 + kill + "money-1563" + ) + (0 + kill + "money-1564" + ) + (0 + kill + "money-1565" + ) + ((the binteger 5) + alive + "dark-eco-pool-11" + ) + ((the binteger 151) + joint + "cameraB" + ) + ((the binteger 200) + want-levels + misty + village1 + ) + ((the binteger 236) + joint + "camera" + ) + ((the binteger 301) + joint + "cameraB" + ) + ((the binteger 421) + joint + "camera" + ) + ((the binteger 460) + shadow + self + #f + ) + ((the binteger 470) + shadow + self + #t + ) + ((the binteger 496) + joint + "cameraB" + ) + ((the binteger 611) + joint + "camera" + ) + ((the binteger 721) + joint + "cameraB" + ) + ((the binteger 1176) + joint + "camera" + ) + ((the binteger 1271) + joint + "cameraB" + ) + ((the binteger 1331) + joint + "camera" + ) + ((the binteger 1386) + joint + "cameraB" + ) + ((the binteger 1461) + joint + "camera" + ) + ((the binteger 1524) + joint + "cameraB" + ) + ((the binteger 1558) + joint + "camera" + ) + ((the binteger 1602) + joint + "cameraB" + ) + ((the binteger 1628) + joint + "camera" + ) + ((the binteger 1676) + joint + "cameraB" + ) + ((the binteger 1728) + joint + "camera" + ) + ((the binteger 1791) + joint + "cameraB" + ) + ((the binteger 1831) + joint + "camera" + ) + ((the binteger 1942) + joint + "cameraB" + ) + ((the binteger 2000) + display-level + village1 + special + ) + ((the binteger 2028) + joint + "camera" + ) + ((the binteger 2096) + joint + "cameraB" + ) + ((the binteger 2154) + joint + "camera" + ) + ((the binteger 2226) + joint + "cameraB" + ) + ((the binteger 2266) + joint + "camera" + ) + ((the binteger 2307) + joint + "cameraB" + ) + ((the binteger 2431) + joint + "camera" + ) + ((the binteger 2476) + joint + "cameraB" + ) + ((the binteger 2530) + display-level + misty + movie + ) + ((the binteger 2530) + want-force-vis + misty + #t + ) + ((the binteger 2530) + dead + "dark-eco-pool-11" + ) + ((the binteger 2534) + display-level + village1 + display + ) + ((the binteger 2535) + want-vis + vi1 + ) + ((the binteger 2536) + joint + "camera" + ) + ((the binteger 2580) alive "sage-23") ((the binteger 2596) save) + ) + ) + ) + ) + ) + +;; definition for method 31 of type sequenceC +(defmethod get-art-elem sequenceC ((obj sequenceC)) + (-> obj draw art-group data 3) + ) + +;; failed to figure out what this is: +(defstate play-anim (sequenceC) + :virtual #t + :exit + (behavior () + (let ((a0-1 (handle->process (-> self bonelurker)))) + (if a0-1 + (deactivate a0-1) + ) + ) + (let ((a0-5 (handle->process (-> self darkecocan)))) + (if a0-5 + (deactivate a0-5) + ) + ) + ((-> (method-of-type process-taskable play-anim) exit)) + (start 'play (get-continue-by-name *game-info* "village1-intro")) + (none) + ) + :trans + (behavior () + (spool-push + *art-control* + "sage-intro-sequence-d1" + 0 + self + (the-as float -1.0) + ) + ((-> (method-of-type process-taskable play-anim) trans)) + (none) + ) + ) + +;; definition for method 39 of type sequenceC +(defmethod should-display? sequenceC ((obj sequenceC)) + #f + ) + +;; definition for function sequenceC-trans-hook +;; INFO: Return type mismatch int vs none. +(defbehavior sequenceC-trans-hook sequenceC () + (when (>= (ja-aframe-num 0) 1655.0) + (let ((gp-0 (new 'stack-no-clear 'vector))) + (vector<-cspace! gp-0 (-> self node-list data 3)) + (let ((s5-0 (get-process *default-dead-pool* part-tracker #x4000))) + (when s5-0 + (let ((t9-3 (method-of-type part-tracker activate))) + (t9-3 + (the-as part-tracker s5-0) + *entity-pool* + 'part-tracker + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s5-0 + part-tracker-init + (-> *part-group-id-table* 562) + -1 + #f + #f + #f + gp-0 + ) + (-> s5-0 ppointer) + ) + ) + ) + (set! (-> self cur-trans-hook) nothing) + ) + 0 + (none) + ) + +;; definition for method 11 of type sequenceC +(defmethod copy-defaults! sequenceC ((obj sequenceC) (arg0 res-lump)) + (dummy-40 + obj + arg0 + *sidekick-human-sg* + 3 + 44 + (new 'static 'vector :w 4096.0) + -1 + ) + (set! (-> obj tasks) (get-task-control (game-task intro))) + (set! (-> obj bonelurker) (the-as handle #f)) + (set! (-> obj darkecocan) (the-as handle #f)) + (set! (-> obj cur-trans-hook) sequenceC-trans-hook) + (dummy-42 obj) + (none) + ) diff --git a/goal_src/levels/village2/flutflut-bluehut.gc b/goal_src/levels/village2/flutflut-bluehut.gc index 5070570c97..82c055fac4 100644 --- a/goal_src/levels/village2/flutflut-bluehut.gc +++ b/goal_src/levels/village2/flutflut-bluehut.gc @@ -5,3 +5,351 @@ ;; name in dgo: flutflut-bluehut ;; dgos: L1, VI2 +(define-extern *flutflut-bluehut-sg* skeleton-group) + +;; definition of type flutflut-bluehut +(deftype flutflut-bluehut (process-taskable) + () + :heap-base #x110 + :method-count-assert 53 + :size-assert #x17c + :flag-assert #x350110017c + ) + +;; failed to figure out what this is: +(let + ((v1-1 + (new 'static 'skeleton-group + :art-group-name "flutflut-bluehut" + :bounds (new 'static 'vector :w 13312.0) + :version #x6 + ) + ) + ) + (set! (-> v1-1 jgeo) 0) + (set! (-> v1-1 janim) 2) + (set! (-> v1-1 mgeo 0) (the-as uint 1)) + (set! (-> v1-1 lod-dist 0) 4095996000.0) + (set! *flutflut-bluehut-sg* v1-1) + ) + +;; definition for method 32 of type flutflut-bluehut +;; INFO: Return type mismatch art-element vs basic. +(defmethod play-anim! flutflut-bluehut ((obj flutflut-bluehut) (arg0 symbol)) + (current-status (-> obj tasks)) + (if arg0 + (format + 0 + "ERROR: : ~S playing anim for task status ~S~%" + (-> obj name) + (task-status->string (the-as task-status (current-status (-> obj tasks)))) + ) + ) + (the-as basic (get-art-elem obj)) + ) + +;; definition for method 31 of type flutflut-bluehut +(defmethod get-art-elem flutflut-bluehut ((obj flutflut-bluehut)) + (-> obj draw art-group data 2) + ) + +;; definition for method 39 of type flutflut-bluehut +(defmethod should-display? flutflut-bluehut ((obj flutflut-bluehut)) + (and + (closed? + (-> obj tasks) + (game-task village2-levitator) + (task-status need-introduction) + ) + (task-closed? (game-task beach-flutflut) (task-status need-resolution)) + ) + ) + +;; failed to figure out what this is: +(defstate idle (flutflut-bluehut) + :virtual #t + :trans + (behavior () + (set! (-> self will-talk) #f) + ((-> (method-of-type process-taskable idle) trans)) + (none) + ) + :code + (behavior () + (if (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (get-art-elem self) + ) + (ja-channel-push! 1 15) + ) + (while #t + (let ((v1-6 (-> self skel root-channel 0))) + (set! + (-> v1-6 frame-group) + (the-as art-joint-anim (-> self draw art-group data 2)) + ) + ) + (let* ((f30-0 2.0) + (v1-8 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-9 (the-as number (logior #x3f800000 v1-8))) + ) + (countdown (gp-0 (+ (the int (* f30-0 (+ -1.0 (the-as float v1-9)))) 1)) + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-12 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-12 param 1) 1.0) + (set! (-> a0-12 frame-num) 0.0) + (joint-control-channel-group! + a0-12 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-13 (-> self skel root-channel 0))) + (set! + (-> a0-13 param 0) + (the float (+ (-> a0-13 frame-group data 0 length) -1)) + ) + (set! (-> a0-13 param 1) 1.0) + (joint-control-channel-group-eval! + a0-13 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((s5-0 (-> *display* base-frame-counter))) + (while (< (+ (-> *display* base-frame-counter) -150) s5-0) + (suspend) + ) + ) + (let ((a0-15 (-> self skel root-channel 0))) + (set! (-> a0-15 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! (-> a0-15 param 0) 0.0) + (set! (-> a0-15 param 1) 1.0) + (set! + (-> a0-15 frame-num) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (joint-control-channel-group! + a0-15 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 param 0) 0.0) + (set! (-> a0-16 param 1) 1.0) + (joint-control-channel-group-eval! + a0-16 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((s5-1 (-> *display* base-frame-counter))) + (while (< (+ (-> *display* base-frame-counter) -150) s5-1) + (suspend) + ) + ) + ) + ) + (let ((a0-18 (-> self skel root-channel 0))) + (set! + (-> a0-18 frame-group) + (the-as art-joint-anim (-> self draw art-group data 3)) + ) + (set! + (-> a0-18 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 3)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-18 param 1) 1.0) + (set! (-> a0-18 frame-num) 0.0) + (joint-control-channel-group! + a0-18 + (the-as art-joint-anim (-> self draw art-group data 3)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-19 (-> self skel root-channel 0))) + (set! + (-> a0-19 param 0) + (the float (+ (-> a0-19 frame-group data 0 length) -1)) + ) + (set! (-> a0-19 param 1) 1.0) + (joint-control-channel-group-eval! + a0-19 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((v1-100 (-> self skel root-channel 0))) + (set! + (-> v1-100 frame-group) + (the-as art-joint-anim (-> self draw art-group data 4)) + ) + ) + (let* ((f30-1 2.0) + (v1-102 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-103 (the-as number (logior #x3f800000 v1-102))) + ) + (countdown (gp-1 (+ (the int (* f30-1 (+ -1.0 (the-as float v1-103)))) 6)) + (let ((a0-26 (-> self skel root-channel 0))) + (set! (-> a0-26 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-26 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-26 param 1) 1.0) + (set! (-> a0-26 frame-num) 0.0) + (joint-control-channel-group! + a0-26 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-27 (-> self skel root-channel 0))) + (set! + (-> a0-27 param 0) + (the float (+ (-> a0-27 frame-group data 0 length) -1)) + ) + (set! (-> a0-27 param 1) 1.0) + (joint-control-channel-group-eval! + a0-27 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + (let ((a0-29 (-> self skel root-channel 0))) + (set! + (-> a0-29 frame-group) + (the-as art-joint-anim (-> self draw art-group data 3)) + ) + (set! (-> a0-29 param 0) 0.0) + (set! (-> a0-29 param 1) 1.0) + (set! + (-> a0-29 frame-num) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 3)) + data + 0 + length + ) + -1 + ) + ) + ) + (joint-control-channel-group! + a0-29 + (the-as art-joint-anim (-> self draw art-group data 3)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-30 (-> self skel root-channel 0))) + (set! (-> a0-30 param 0) 0.0) + (set! (-> a0-30 param 1) 1.0) + (joint-control-channel-group-eval! + a0-30 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (none) + ) + ) + +;; definition for method 11 of type flutflut-bluehut +(defmethod + copy-defaults! + flutflut-bluehut + ((obj flutflut-bluehut) (arg0 res-lump)) + (dummy-40 + obj + arg0 + *flutflut-bluehut-sg* + 3 + 0 + (new 'static 'vector :w 4096.0) + 27 + ) + (set! (-> obj tasks) (get-task-control (game-task village2-levitator))) + (set! (-> obj draw light-index) (the-as uint 1)) + (dummy-42 obj) + (none) + ) diff --git a/goal_src/levels/village2/sage-bluehut.gc b/goal_src/levels/village2/sage-bluehut.gc index a14e72ca8f..da9a71201f 100644 --- a/goal_src/levels/village2/sage-bluehut.gc +++ b/goal_src/levels/village2/sage-bluehut.gc @@ -5,3 +5,604 @@ ;; name in dgo: sage-bluehut ;; dgos: L1, VI2 +(define-extern *sage-bluehut-sg* skeleton-group) + +;; definition of type assistant-bluehut +(deftype assistant-bluehut (process-taskable) + ((sound-id sound-id :offset-assert 380) + (jaws uint64 :offset-assert 384) + (sage entity-actor :offset-assert 392) + (im-talking symbol :offset-assert 396) + ) + :heap-base #x120 + :method-count-assert 53 + :size-assert #x190 + :flag-assert #x3501200190 + ) + +;; definition of type sage-bluehut +(deftype sage-bluehut (process-taskable) + ((reminder-played symbol :offset-assert 380) + (assistant entity-actor :offset-assert 384) + ) + :heap-base #x120 + :method-count-assert 53 + :size-assert #x184 + :flag-assert #x3501200184 + ) + +;; failed to figure out what this is: +(let + ((v1-2 + (new 'static 'skeleton-group + :art-group-name "sage-bluehut" + :bounds (new 'static 'vector :w 10240.0) + :version #x6 + :shadow 2 + ) + ) + ) + (set! (-> v1-2 jgeo) 0) + (set! (-> v1-2 janim) 3) + (set! (-> v1-2 mgeo 0) (the-as uint 1)) + (set! (-> v1-2 lod-dist 0) 4095996000.0) + (set! *sage-bluehut-sg* v1-2) + ) + +;; definition for method 32 of type sage-bluehut +(defmethod play-anim! sage-bluehut ((obj sage-bluehut) (arg0 symbol)) + (with-pp + (set! (-> obj talk-message) (the-as uint 291)) + (case (current-status (-> obj tasks)) + ((2 3) + (if (not arg0) + (set! (-> obj will-talk) #t) + ) + (case (current-task (-> obj tasks)) + ((55) + (when arg0 + (let* ((s5-1 (-> obj tasks)) + (s4-0 (method-of-object s5-1 save-reminder)) + (a1-3 (new 'stack-no-clear 'event-message-block)) + ) + (set! (-> a1-3 from) pp) + (set! (-> a1-3 num-params) 2) + (set! (-> a1-3 message) 'query) + (set! (-> a1-3 param 0) (the-as uint 'pickup)) + (set! (-> a1-3 param 1) (the-as uint 6)) + (s4-0 + s5-1 + (the int (the-as float (send-event-function *target* a1-3))) + 1 + ) + ) + (close-status! (-> obj tasks) (task-status need-introduction)) + (let ((s5-2 (-> obj assistant extra process))) + (when (and s5-2 (should-display? (the-as assistant-bluehut s5-2))) + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) pp) + (set! (-> a1-6 num-params) 1) + (set! (-> a1-6 message) 'clone) + (set! (-> a1-6 param 0) (the-as uint (process->handle obj))) + (send-event-function s5-2 a1-6) + ) + ) + ) + (set! (-> obj draw bounds w) 40960.0) + ) + (new 'static 'spool-anim + :name + "sage-bluehut-introduction-crop-dusting" + :index 8 + :parts 12 + :command-list + '( + ((the binteger 678) + joint + "cameraB" + ) + ((the binteger 1166) + joint + "camera" + ) + ((the binteger 1258) joint "cameraB") + ) + ) + ) + (else + (when arg0 + (close-status! (-> obj tasks) (task-status need-introduction)) + (close-specific-task! + (game-task swamp-tether-1) + (task-status need-introduction) + ) + (close-specific-task! + (game-task swamp-tether-2) + (task-status need-introduction) + ) + (close-specific-task! + (game-task swamp-tether-3) + (task-status need-introduction) + ) + (close-specific-task! + (game-task swamp-tether-4) + (task-status need-introduction) + ) + ) + (new 'static 'spool-anim + :name "sage-bluehut-introduction-prec-arm" + :index 6 + :parts 8 + :command-list + '( + ((the binteger 141) + joint + "cameraB" + ) + ((the binteger 214) + joint + "camera" + ) + ((the binteger 308) + joint + "cameraB" + ) + ((the binteger 686) + joint + "camera" + ) + ((the binteger 786) + joint + "cameraB" + ) + ((the binteger 843) joint "camera") + ) + ) + ) + ) + ) + ((5) + (set! (-> obj skippable) #t) + (if arg0 + (set! (-> obj reminder-played) #t) + ) + (cond + ((zero? (get-reminder (-> obj tasks) 0)) + (new 'static 'spool-anim + :name "sage-bluehut-reminder-1-crop-dusting" + :index 9 + :parts 3 + :command-list '() + ) + ) + (else + (if arg0 + (set! (-> obj draw bounds w) 40960.0) + ) + (new 'static 'spool-anim + :name "sage-bluehut-reminder-1-prec-arm" + :index 7 + :parts 4 + :command-list + '( + ((the binteger 90) + joint + "cameraB" + ) + ((the binteger 259) + joint + "camera" + ) + ((the binteger 352) joint "cameraB") + ) + ) + ) + ) + ) + (else + (if arg0 + (format + 0 + "ERROR: : ~S playing anim for task status ~S~%" + (-> obj name) + (task-status->string + (the-as task-status (current-status (-> obj tasks))) + ) + ) + ) + (get-art-elem obj) + ) + ) + ) + ) + +;; definition for method 45 of type sage-bluehut +;; INFO: Return type mismatch symbol vs none. +(defmethod dummy-45 sage-bluehut ((obj sage-bluehut)) + (cond + ((= (current-status (-> obj tasks)) 1) + ) + ((zero? (current-status (-> obj tasks))) + ) + ((and + (closed? + (-> obj tasks) + (game-task rolling-plants) + (task-status need-reminder) + ) + (= (get-reminder (-> obj tasks) 0) 0) + ) + #t + ) + ((and + (closed? (-> obj tasks) (game-task swamp-arm) (task-status need-reminder)) + (= (get-reminder (-> obj tasks) 0) 1) + ) + #t + ) + ((and + (-> obj reminder-played) + (< 81920.0 (vector-vector-distance (-> obj root trans) (camera-pos))) + ) + #t + ) + (else + ) + ) + (none) + ) + +;; definition for method 31 of type sage-bluehut +(defmethod get-art-elem sage-bluehut ((obj sage-bluehut)) + (cond + ((and + (= (current-task (-> obj tasks)) 55) + (or + (= (current-status (-> obj tasks)) 2) + (= (current-status (-> obj tasks)) 3) + ) + ) + (save-reminder (-> obj tasks) 0 0) + ) + ((and + (= (current-task (-> obj tasks)) 104) + (or + (= (current-status (-> obj tasks)) 2) + (= (current-status (-> obj tasks)) 3) + ) + ) + (save-reminder (-> obj tasks) 1 0) + ) + ((dummy-45 obj) + (set! (-> obj reminder-played) #f) + (cond + ((closed? + (-> obj tasks) + (game-task rolling-plants) + (task-status need-reminder) + ) + (save-reminder (-> obj tasks) 1 0) + ) + ((or + (closed? + (-> obj tasks) + (game-task swamp-arm) + (task-status need-reminder) + ) + (not + (closed? + (-> obj tasks) + (game-task swamp-arm) + (task-status need-introduction) + ) + ) + ) + (save-reminder (-> obj tasks) 0 0) + ) + ((zero? (get-reminder (-> obj tasks) 0)) + (save-reminder (-> obj tasks) 1 0) + ) + (else + (save-reminder (-> obj tasks) 0 0) + ) + ) + ) + ) + (if (zero? (get-reminder (-> obj tasks) 0)) + (-> obj draw art-group data 4) + (-> obj draw art-group data 5) + ) + ) + +;; failed to figure out what this is: +(defstate play-anim (sage-bluehut) + :virtual #t + :exit + (behavior () + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 0) + (set! (-> a1-0 message) 'end-mode) + (send-event-function (-> self assistant extra process) a1-0) + ) + (set! (-> self draw bounds w) 10240.0) + ((-> (method-of-type process-taskable play-anim) exit)) + (none) + ) + ) + +;; definition for method 39 of type sage-bluehut +(defmethod should-display? sage-bluehut ((obj sage-bluehut)) + (and + (task-closed? (game-task village2-levitator) (task-status need-introduction)) + (not (sages-kidnapped?)) + ) + ) + +;; definition for method 44 of type sage-bluehut +;; INFO: Return type mismatch basic vs symbol. +(defmethod play-reminder sage-bluehut ((obj sage-bluehut)) + (the-as + symbol + (and + (-> obj will-talk) + *target* + (< -6365184.0 (-> (target-pos 0) z)) + (< (-> (target-pos 0) x) 1612800.0) + ) + ) + ) + +;; definition for method 47 of type sage-bluehut +(defmethod target-above-threshold? sage-bluehut ((obj sage-bluehut)) + (local-vars (v0-1 symbol)) + (if (not (play-reminder obj)) + (return #f) + ) + (let ((gp-1 (-> obj assistant extra process))) + (if (not gp-1) + (return #t) + ) + (target-above-threshold? (the-as assistant-bluehut gp-1)) + (return (not (-> (the-as assistant-bluehut gp-1) im-talking))) + ) + v0-1 + ) + +;; definition for method 43 of type sage-bluehut +(defmethod TODO-RENAME-43 sage-bluehut ((obj sage-bluehut)) + (when + (TODO-RENAME-10 + (-> obj ambient) + (new 'stack-no-clear 'vector) + 9000 + 122880.0 + obj + ) + (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-4 (the-as number (logior #x3f800000 v1-3))) + (f0-2 (+ -1.0 (the-as float v1-4))) + ) + (cond + ((< 0.8 f0-2) + (dummy-11 (-> obj ambient) "SAGELP20" #f (-> obj root trans)) + ) + ((< 0.6 f0-2) + (dummy-11 (-> obj ambient) "SAGELP21" #f (-> obj root trans)) + ) + ((< 0.4 f0-2) + (dummy-11 (-> obj ambient) "SAGELP22" #f (-> obj root trans)) + ) + ((< 0.2 f0-2) + (dummy-11 (-> obj ambient) "SAGELP23" #f (-> obj root trans)) + ) + ((nonzero? (get-task-status (game-task citadel-sage-blue))) + (dummy-11 (-> obj ambient) "SAGELP24" #f (-> obj root trans)) + ) + ) + ) + ) + (none) + ) + +;; failed to figure out what this is: +(defstate idle (sage-bluehut) + :virtual #t + :code + (behavior () + (while #t + (let ((gp-0 (get-art-elem self))) + (cond + ((= gp-0 (-> self draw art-group data 4)) + (if (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + gp-0 + ) + (ja-channel-push! 1 60) + ) + (set! + (-> self skel root-channel 0 frame-group) + (the-as art-joint-anim gp-0) + ) + (let* ((f30-0 3.0) + (v1-15 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-16 (the-as number (logior #x3f800000 v1-15))) + ) + (countdown + (gp-1 (+ (the int (* f30-0 (+ -1.0 (the-as float v1-16)))) 5)) + (TODO-RENAME-43 self) + (let ((a0-5 (-> self skel root-channel 0))) + (set! (-> a0-5 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-5 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-5 param 1) 1.0) + (set! (-> a0-5 frame-num) 0.0) + (joint-control-channel-group! + a0-5 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (if (dummy-45 self) + (go-virtual idle) + ) + (suspend) + (let ((a0-7 (-> self skel root-channel 0))) + (set! + (-> a0-7 param 0) + (the float (+ (-> a0-7 frame-group data 0 length) -1)) + ) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! + a0-7 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + (ja-channel-push! 1 60) + (let ((a0-10 (-> self skel root-channel 0))) + (set! + (-> a0-10 frame-group) + (the-as art-joint-anim (-> self draw art-group data 3)) + ) + (set! + (-> a0-10 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 3)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-10 param 1) 1.0) + (set! (-> a0-10 frame-num) 0.0) + (joint-control-channel-group! + a0-10 + (the-as art-joint-anim (-> self draw art-group data 3)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (if (dummy-45 self) + (go-virtual idle) + ) + (suspend) + (let ((a0-12 (-> self skel root-channel 0))) + (set! + (-> a0-12 param 0) + (the float (+ (-> a0-12 frame-group data 0 length) -1)) + ) + (set! (-> a0-12 param 1) 1.0) + (joint-control-channel-group-eval! + a0-12 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (else + (TODO-RENAME-43 self) + (if (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + gp-0 + ) + (ja-channel-push! 1 60) + ) + (set! + (-> self skel root-channel 0 frame-group) + (the-as art-joint-anim gp-0) + ) + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-16 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-16 param 1) 1.0) + (set! (-> a0-16 frame-num) 0.0) + (joint-control-channel-group! + a0-16 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (if (dummy-45 self) + (go-virtual idle) + ) + (suspend) + (let ((a0-18 (-> self skel root-channel 0))) + (set! + (-> a0-18 param 0) + (the float (+ (-> a0-18 frame-group data 0 length) -1)) + ) + (set! (-> a0-18 param 1) 1.0) + (joint-control-channel-group-eval! + a0-18 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + ) + ) + (none) + ) + ) + +;; definition for method 11 of type sage-bluehut +(defmethod copy-defaults! sage-bluehut ((obj sage-bluehut) (arg0 res-lump)) + (dummy-40 obj arg0 *sage-bluehut-sg* 3 40 (new 'static 'vector :w 4505.6) 5) + (set! (-> obj tasks) (get-task-control (game-task rolling-plants))) + (set! (-> obj reminder-played) #f) + (set! (-> obj assistant) (entity-actor-lookup arg0 'alt-actor 0)) + (set! (-> obj draw light-index) (the-as uint 1)) + (set! (-> obj sound-flava) (the-as uint 5)) + (dummy-42 obj) + (none) + ) diff --git a/goal_src/levels/village2/sunken-elevator.gc b/goal_src/levels/village2/sunken-elevator.gc index 4fe8e9c44d..d62dec95b2 100644 --- a/goal_src/levels/village2/sunken-elevator.gc +++ b/goal_src/levels/village2/sunken-elevator.gc @@ -5,6 +5,8 @@ ;; name in dgo: sunken-elevator ;; dgos: L1, VI2 +(define-extern *sunken-elevator-sg* skeleton-group) + ;; definition of type sunken-elevator (deftype sunken-elevator (plat-button) ((play-at-top-going-up-camera? symbol :offset-assert 240) @@ -17,9 +19,6 @@ :flag-assert #x21009000fc ) -(define-extern *sunken-elevator-sg* skeleton-group) - - ;; failed to figure out what this is: (let ((v1-1 @@ -236,7 +235,8 @@ ) ;; definition for method 29 of type sunken-elevator -(defmethod TODO-RENAME-29 sunken-elevator ((obj sunken-elevator)) +;; INFO: Return type mismatch float vs symbol. +(defmethod can-target-move? sunken-elevator ((obj sunken-elevator)) (set! (-> obj play-at-top-going-up-camera?) #f) (let ((s5-0 (new 'stack-no-clear 'vector))) (eval-path-curve! (-> obj path) s5-0 0.4 'interp) @@ -244,7 +244,7 @@ (eval-path-curve! (-> obj path) s5-0 0.6 'interp) (let ((f0-1 (-> s5-0 y))) (set! (-> obj teleport-if-below-y) f0-1) - f0-1 + (the-as symbol f0-1) ) ) ) @@ -253,7 +253,7 @@ (defmethod TODO-RENAME-27 sunken-elevator ((obj sunken-elevator)) (ja-channel-set! 1) (cond - (((method-of-object obj dummy-26)) + ((can-activate? obj) (let ((s5-0 (-> obj skel root-channel 0))) (joint-control-channel-group-eval! s5-0 diff --git a/test/decompiler/reference/engine/game/task/task-control-h_REF.gc b/test/decompiler/reference/engine/game/task/task-control-h_REF.gc index e661a257ea..d76de4461d 100644 --- a/test/decompiler/reference/engine/game/task/task-control-h_REF.gc +++ b/test/decompiler/reference/engine/game/task/task-control-h_REF.gc @@ -144,7 +144,7 @@ (initialize-collision (_type_ int) none 41) (dummy-42 (_type_) none 42) (TODO-RENAME-43 (_type_) none 43) - (dummy-44 (_type_) none 44) + (play-reminder (_type_) symbol 44) (dummy-45 (_type_) none 45) (dummy-46 (_type_) none 46) (target-above-threshold? (_type_) symbol 47) diff --git a/test/decompiler/reference/levels/common/blocking-plane_REF.gc b/test/decompiler/reference/levels/common/blocking-plane_REF.gc new file mode 100644 index 0000000000..d4a68471b3 --- /dev/null +++ b/test/decompiler/reference/levels/common/blocking-plane_REF.gc @@ -0,0 +1,185 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type blocking-plane +(deftype blocking-plane (process-drawable) + () + :heap-base #x40 + :method-count-assert 20 + :size-assert #xb0 + :flag-assert #x14004000b0 + ) + +;; definition for method 3 of type blocking-plane +(defmethod inspect blocking-plane ((obj blocking-plane)) + (let ((t9-0 (method-of-type process-drawable inspect))) + (t9-0 obj) + ) + obj + ) + +;; failed to figure out what this is: +(let + ((v1-1 + (new 'static 'skeleton-group + :art-group-name "ef-plane" + :bounds (new 'static 'vector :w 122880.0) + :version #x6 + ) + ) + ) + (set! (-> v1-1 jgeo) 0) + (set! (-> v1-1 janim) 2) + (set! (-> v1-1 mgeo 0) (the-as uint 1)) + (set! (-> v1-1 lod-dist 0) 4095996000.0) + (set! *ef-plane-sg* v1-1) + ) + +;; failed to figure out what this is: +(defstate blocking-plane-idle (blocking-plane) + :code + (behavior () + (transform-post) + (while #t + (logior! (-> self mask) (process-mask sleep)) + (suspend) + ) + (none) + ) + ) + +;; definition for function blocking-plane-init-by-other +;; Used lq/sq +(defbehavior + blocking-plane-init-by-other blocking-plane + ((arg0 curve-control) (arg1 int)) + (if (or (not arg0) (logtest? (-> arg0 flags) (path-control-flag not-found))) + (deactivate self) + ) + (let ((s5-0 (new 'static 'vector)) + (gp-0 (new 'static 'vector)) + ) + 0.0 + (eval-path-curve-div! arg0 s5-0 (the float arg1) 'exact) + (eval-path-curve-div! arg0 gp-0 (+ 1.0 (the float arg1)) 'exact) + (let ((f30-1 (* 0.5 (vector-vector-distance s5-0 gp-0))) + (s4-1 + (new + 'process + 'collide-shape + self + (collide-list-enum usually-hit-by-player) + ) + ) + ) + (let + ((s3-1 + (new + 'process + 'collide-shape-prim-mesh + s4-1 + (the-as uint 0) + (the-as uint 0) + ) + ) + ) + (set! (-> s3-1 prim-core collide-as) (the-as uint 512)) + (set! (-> s3-1 collide-with) (the-as uint 16)) + (set! (-> s3-1 prim-core action) (the-as uint 1)) + (set! (-> s3-1 prim-core offense) 4) + (set! (-> s3-1 transform-index) 3) + (set-vector! (-> s3-1 local-sphere) 0.0 0.0 0.0 (fmax 122880.0 f30-1)) + ) + (dummy-46 s4-1) + (set! (-> s4-1 nav-radius) (* 0.75 (-> s4-1 root-prim local-sphere w))) + (dummy-50 s4-1) + (set! (-> self root) s4-1) + ) + (let ((s4-2 (new-stack-matrix0))) + (vector+! (-> self root trans) s5-0 gp-0) + (vector-float*! (-> self root trans) (-> self root trans) 0.5) + (set! (-> self root trans y) (+ 61440.0 (-> self root trans y))) + (vector-! (the-as vector (-> s4-2 vector)) gp-0 s5-0) + (set! + (-> self root scale x) + (* + 0.00024414062 + (vector-normalize-ret-len! (the-as vector (-> s4-2 vector)) 1.0) + ) + ) + (set! (-> self root scale y) 30.0) + (set! (-> self root scale z) 0.0) + (set! (-> s4-2 vector 1 quad) (-> (new 'static 'vector :y 1.0 :w 1.0) quad)) + (vector-cross! + (-> s4-2 vector 2) + (the-as vector (-> s4-2 vector)) + (-> s4-2 vector 1) + ) + (vector-normalize! (-> s4-2 vector 2) 1.0) + (matrix->quaternion (-> self root quat) s4-2) + ) + ) + (dummy-14 self *ef-plane-sg* '()) + (logior! (-> self draw status) 32) + (go blocking-plane-idle) + (none) + ) + +;; definition for function blocking-plane-spawn +;; INFO: Return type mismatch int vs none. +(defun blocking-plane-spawn ((arg0 curve-control)) + (with-pp + (cond + ((or (not arg0) (logtest? (-> arg0 flags) (path-control-flag not-found))) + ) + (else + (let ((s5-0 (the int (the float (+ (-> arg0 curve num-cverts) -1)))) + (s4-0 0) + ) + (while (< s4-0 s5-0) + (let ((s3-0 (get-process *default-dead-pool* blocking-plane #x4000))) + (when s3-0 + (let ((t9-1 (method-of-type blocking-plane activate))) + (t9-1 + (the-as blocking-plane s3-0) + pp + 'blocking-plane + (the-as pointer #x70004000) + ) + ) + (run-now-in-process s3-0 blocking-plane-init-by-other arg0 s4-0) + (-> s3-0 ppointer) + ) + ) + (+! s4-0 2) + ) + ) + ) + ) + 0 + (none) + ) + ) + +;; definition for function blocking-plane-destroy +;; INFO: Return type mismatch int vs none. +(defun blocking-plane-destroy () + (with-pp + (let ((gp-0 (-> pp child))) + (while gp-0 + (let ((s5-0 (ppointer->process gp-0))) + (set! gp-0 (-> gp-0 0 brother)) + (if (type-type? (-> s5-0 type) blocking-plane) + (deactivate s5-0) + ) + ) + ) + ) + 0 + (none) + ) + ) + + + + diff --git a/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc b/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc new file mode 100644 index 0000000000..3c67082004 --- /dev/null +++ b/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc @@ -0,0 +1,877 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type assistant-firecanyon +(deftype assistant-firecanyon (process-taskable) + () + :heap-base #x110 + :method-count-assert 53 + :size-assert #x17c + :flag-assert #x350110017c + ) + +;; definition for method 3 of type assistant-firecanyon +(defmethod inspect assistant-firecanyon ((obj assistant-firecanyon)) + (let ((t9-0 (method-of-type process-taskable inspect))) + (t9-0 obj) + ) + obj + ) + +;; failed to figure out what this is: +(let + ((v1-1 + (new 'static 'skeleton-group + :art-group-name "assistant-firecanyon" + :bounds (new 'static 'vector :w 16384.0) + :version #x6 + :shadow 2 + ) + ) + ) + (set! (-> v1-1 jgeo) 0) + (set! (-> v1-1 janim) 3) + (set! (-> v1-1 mgeo 0) (the-as uint 1)) + (set! (-> v1-1 lod-dist 0) 4095996000.0) + (set! *assistant-firecanyon-sg* v1-1) + ) + +;; definition for method 32 of type assistant-firecanyon +(defmethod + play-anim! + assistant-firecanyon + ((obj assistant-firecanyon) (arg0 symbol)) + (case (current-status (-> obj tasks)) + ((6) + (if arg0 + (close-current! (-> obj tasks)) + ) + (new 'static 'spool-anim + :name "assistant-firecanyon-resolution" + :index 13 + :parts 11 + :command-list + '( + (0 + want-levels + village1 + firecanyon + ) + ((the binteger 151) + joint + "cameraB" + ) + ((the binteger 346) + joint + "camera" + ) + ((the binteger 346) + shadow + self + #f + ) + ((the binteger 461) + joint + "cameraB" + ) + ((the binteger 546) + joint + "camera" + ) + ((the binteger 636) + joint + "cameraB" + ) + ((the binteger 695) + alive + "balloon-12" + ) + ((the binteger 696) + joint + "camera" + ) + ((the binteger 821) + alive + "balloon-16" + ) + ((the binteger 822) + joint + "cameraB" + ) + ((the binteger 962) joint "camera") ((the binteger 1268) shadow self #t) + ) + ) + ) + (else + (if arg0 + (format + 0 + "ERROR: : ~S playing anim for task status ~S~%" + (-> obj name) + (task-status->string (the-as task-status (current-status (-> obj tasks)))) + ) + ) + (-> obj draw art-group data 3) + ) + ) + ) + +;; definition for method 31 of type assistant-firecanyon +(defmethod get-art-elem assistant-firecanyon ((obj assistant-firecanyon)) + (if (zero? (current-status (-> obj tasks))) + (-> obj draw art-group data 8) + (-> obj draw art-group data 3) + ) + ) + +;; failed to figure out what this is: +(defstate hidden (assistant-firecanyon) + :virtual #t + :trans + (behavior () + ((-> (method-of-type process-taskable hidden) trans)) + (when (and (cond + ((and + *target* + (>= + 61440.0 + (vector-vector-distance + (-> self root trans) + (-> *target* control trans) + ) + ) + ) + #t + ) + (else + (set! + (-> self state-time) + (the-as seconds (-> *display* base-frame-counter)) + ) + #f + ) + ) + (and + (not + (closed? + (-> self tasks) + (game-task firecanyon-assistant) + (task-status need-reward-speech) + ) + ) + (not (movie?)) + (not (level-hint-displayed?)) + (not + (and + *cheat-mode* + (logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3)) + ) + ) + (< + (- + (-> *display* base-frame-counter) + (the-as int (-> self state-time)) + ) + 3000 + ) + ) + ) + (hide-hud) + (kill-current-level-hint '() '(sidekick voicebox) 'exit) + (when + (and + (seen-text? *game-info* (game-text-id firecanyon-not-enough-cells)) + (hud-hidden?) + (can-grab-display? self) + (not (-> *setting-control* current hint)) + ) + (let + ((gp-0 + (new + 'stack + 'font-context + *font-default-matrix* + 32 + 160 + 0.0 + (font-color default) + (font-flags shadow kerning) + ) + ) + ) + (let ((v1-26 gp-0)) + (set! (-> v1-26 width) (the float 448)) + ) + (let ((v1-27 gp-0)) + (set! (-> v1-27 height) (the float 80)) + ) + (let ((v1-28 gp-0)) + (set! (-> v1-28 scale) 0.8) + ) + (set! (-> gp-0 flags) (font-flags shadow kerning middle large)) + (print-game-text + (lookup-text! + *common-text* + (game-text-id firecanyon-collect-cells-text) + #f + ) + gp-0 + #f + 128 + 22 + ) + ) + ) + (level-hint-spawn + (game-text-id firecanyon-not-enough-cells) + "asstvb09" + #f + *entity-pool* + 0 + ) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate idle (assistant-firecanyon) + :virtual #t + :code + (behavior () + (if (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (get-art-elem self) + ) + (ja-channel-push! 1 15) + ) + (while #t + (let ((gp-0 #t)) + (cond + ((zero? (current-status (-> self tasks))) + (let* ((v1-8 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-9 (the-as number (logior #x3f800000 v1-8))) + ) + (when (< (+ -1.0 (the-as float v1-9)) 0.5) + (let ((v1-14 (-> self skel root-channel 0))) + (set! + (-> v1-14 frame-group) + (the-as art-joint-anim (-> self draw art-group data 8)) + ) + ) + (let* ((f30-0 2.0) + (v1-16 + (/ (the-as int (rand-uint31-gen *random-generator*)) 256) + ) + (v1-17 (the-as number (logior #x3f800000 v1-16))) + ) + (countdown + (gp-1 (+ (the int (* f30-0 (+ -1.0 (the-as float v1-17)))) 3)) + (let ((a0-15 (-> self skel root-channel 0))) + (set! + (-> a0-15 frame-group) + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-15 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-15 param 1) 1.0) + (set! (-> a0-15 frame-num) 0.0) + (joint-control-channel-group! + a0-15 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-16 (-> self skel root-channel 0))) + (set! + (-> a0-16 param 0) + (the float (+ (-> a0-16 frame-group data 0 length) -1)) + ) + (set! (-> a0-16 param 1) 1.0) + (joint-control-channel-group-eval! + a0-16 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + (set! gp-0 #f) + ) + ) + (when + (or + gp-0 + (let* + ((v1-53 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-54 (the-as number (logior #x3f800000 v1-53))) + ) + (< (+ -1.0 (the-as float v1-54)) 0.5) + ) + ) + (let ((a0-20 (-> self skel root-channel 0))) + (set! + (-> a0-20 frame-group) + (the-as art-joint-anim (-> self draw art-group data 9)) + ) + (set! + (-> a0-20 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 9)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-20 param 1) 1.0) + (set! (-> a0-20 frame-num) 0.0) + (joint-control-channel-group! + a0-20 + (the-as art-joint-anim (-> self draw art-group data 9)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-21 (-> self skel root-channel 0))) + (set! + (-> a0-21 param 0) + (the float (+ (-> a0-21 frame-group data 0 length) -1)) + ) + (set! (-> a0-21 param 1) 1.0) + (joint-control-channel-group-eval! + a0-21 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((v1-81 (-> self skel root-channel 0))) + (set! + (-> v1-81 frame-group) + (the-as art-joint-anim (-> self draw art-group data 10)) + ) + ) + (let* ((f30-1 2.0) + (v1-83 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-84 (the-as number (logior #x3f800000 v1-83))) + ) + (countdown + (gp-2 (+ (the int (* f30-1 (+ -1.0 (the-as float v1-84)))) 3)) + (let ((a0-28 (-> self skel root-channel 0))) + (set! (-> a0-28 frame-group) (if (> (-> self skel active-channels) 0) + (-> + self + skel + root-channel + 0 + frame-group + ) + ) + ) + (set! + (-> a0-28 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-28 param 1) 1.0) + (set! (-> a0-28 frame-num) 0.0) + (joint-control-channel-group! + a0-28 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-29 (-> self skel root-channel 0))) + (set! + (-> a0-29 param 0) + (the float (+ (-> a0-29 frame-group data 0 length) -1)) + ) + (set! (-> a0-29 param 1) 1.0) + (joint-control-channel-group-eval! + a0-29 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + (let ((a0-31 (-> self skel root-channel 0))) + (set! + (-> a0-31 frame-group) + (the-as art-joint-anim (-> self draw art-group data 11)) + ) + (set! + (-> a0-31 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 11)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-31 param 1) 1.0) + (set! (-> a0-31 frame-num) 0.0) + (joint-control-channel-group! + a0-31 + (the-as art-joint-anim (-> self draw art-group data 11)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-32 (-> self skel root-channel 0))) + (set! + (-> a0-32 param 0) + (the float (+ (-> a0-32 frame-group data 0 length) -1)) + ) + (set! (-> a0-32 param 1) 1.0) + (joint-control-channel-group-eval! + a0-32 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (let* ((v1-140 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-141 (the-as number (logior #x3f800000 v1-140))) + ) + (when (< (+ -1.0 (the-as float v1-141)) 0.25) + (let ((v1-146 (-> self skel root-channel 0))) + (set! + (-> v1-146 frame-group) + (the-as art-joint-anim (-> self draw art-group data 12)) + ) + ) + (let ((a0-39 (-> self skel root-channel 0))) + (set! (-> a0-39 frame-group) (if (> (-> self skel active-channels) 0) + (-> + self + skel + root-channel + 0 + frame-group + ) + ) + ) + (set! + (-> a0-39 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-39 param 1) 1.0) + (set! (-> a0-39 frame-num) 0.0) + (joint-control-channel-group! + a0-39 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-40 (-> self skel root-channel 0))) + (set! + (-> a0-40 param 0) + (the float (+ (-> a0-40 frame-group data 0 length) -1)) + ) + (set! (-> a0-40 param 1) 1.0) + (joint-control-channel-group-eval! + a0-40 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + ) + (else + (let* ((v1-176 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-177 (the-as number (logior #x3f800000 v1-176))) + ) + (when (< (+ -1.0 (the-as float v1-177)) 0.8) + (let ((v1-182 (-> self skel root-channel 0))) + (set! + (-> v1-182 frame-group) + (the-as art-joint-anim (-> self draw art-group data 3)) + ) + ) + (let* ((f30-2 4.0) + (v1-184 + (/ (the-as int (rand-uint31-gen *random-generator*)) 256) + ) + (v1-185 (the-as number (logior #x3f800000 v1-184))) + ) + (countdown + (gp-3 (+ (the int (* f30-2 (+ -1.0 (the-as float v1-185)))) 8)) + (let ((a0-49 (-> self skel root-channel 0))) + (set! + (-> a0-49 frame-group) + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-49 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-49 param 1) 1.0) + (set! (-> a0-49 frame-num) 0.0) + (joint-control-channel-group! + a0-49 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-50 (-> self skel root-channel 0))) + (set! + (-> a0-50 param 0) + (the float (+ (-> a0-50 frame-group data 0 length) -1)) + ) + (set! (-> a0-50 param 1) 1.0) + (joint-control-channel-group-eval! + a0-50 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + (set! gp-0 #f) + ) + ) + (when + (or + gp-0 + (let* + ((v1-221 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-222 (the-as number (logior #x3f800000 v1-221))) + ) + (< (+ -1.0 (the-as float v1-222)) 0.5) + ) + ) + (let ((a0-54 (-> self skel root-channel 0))) + (set! + (-> a0-54 frame-group) + (the-as art-joint-anim (-> self draw art-group data 4)) + ) + (set! + (-> a0-54 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 4)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-54 param 1) 1.0) + (set! (-> a0-54 frame-num) 0.0) + (joint-control-channel-group! + a0-54 + (the-as art-joint-anim (-> self draw art-group data 4)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-55 (-> self skel root-channel 0))) + (set! + (-> a0-55 param 0) + (the float (+ (-> a0-55 frame-group data 0 length) -1)) + ) + (set! (-> a0-55 param 1) 1.0) + (joint-control-channel-group-eval! + a0-55 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((v1-249 (-> self skel root-channel 0))) + (set! + (-> v1-249 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + ) + (let* ((f30-3 2.0) + (v1-251 + (/ (the-as int (rand-uint31-gen *random-generator*)) 256) + ) + (v1-252 (the-as number (logior #x3f800000 v1-251))) + ) + (countdown + (gp-4 (+ (the int (* f30-3 (+ -1.0 (the-as float v1-252)))) 3)) + (let ((a0-62 (-> self skel root-channel 0))) + (set! (-> a0-62 frame-group) (if (> (-> self skel active-channels) 0) + (-> + self + skel + root-channel + 0 + frame-group + ) + ) + ) + (set! + (-> a0-62 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-62 param 1) 1.0) + (set! (-> a0-62 frame-num) 0.0) + (joint-control-channel-group! + a0-62 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-63 (-> self skel root-channel 0))) + (set! + (-> a0-63 param 0) + (the float (+ (-> a0-63 frame-group data 0 length) -1)) + ) + (set! (-> a0-63 param 1) 1.0) + (joint-control-channel-group-eval! + a0-63 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + (let ((a0-65 (-> self skel root-channel 0))) + (set! + (-> a0-65 frame-group) + (the-as art-joint-anim (-> self draw art-group data 6)) + ) + (set! + (-> a0-65 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 6)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-65 param 1) 1.0) + (set! (-> a0-65 frame-num) 0.0) + (joint-control-channel-group! + a0-65 + (the-as art-joint-anim (-> self draw art-group data 6)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-66 (-> self skel root-channel 0))) + (set! + (-> a0-66 param 0) + (the float (+ (-> a0-66 frame-group data 0 length) -1)) + ) + (set! (-> a0-66 param 1) 1.0) + (joint-control-channel-group-eval! + a0-66 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (let* ((v1-308 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-309 (the-as number (logior #x3f800000 v1-308))) + ) + (when (< (+ -1.0 (the-as float v1-309)) 0.5) + (let ((v1-314 (-> self skel root-channel 0))) + (set! + (-> v1-314 frame-group) + (the-as art-joint-anim (-> self draw art-group data 7)) + ) + ) + (let* ((f30-4 2.0) + (v1-316 + (/ (the-as int (rand-uint31-gen *random-generator*)) 256) + ) + (v1-317 (the-as number (logior #x3f800000 v1-316))) + ) + (countdown + (gp-5 (+ (the int (* f30-4 (+ -1.0 (the-as float v1-317)))) 3)) + (let ((a0-75 (-> self skel root-channel 0))) + (set! + (-> a0-75 frame-group) + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-75 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-75 param 1) 1.0) + (set! (-> a0-75 frame-num) 0.0) + (joint-control-channel-group! + a0-75 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-76 (-> self skel root-channel 0))) + (set! + (-> a0-76 param 0) + (the float (+ (-> a0-76 frame-group data 0 length) -1)) + ) + (set! (-> a0-76 param 1) 1.0) + (joint-control-channel-group-eval! + a0-76 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (none) + ) + ) + +;; definition for method 39 of type assistant-firecanyon +(defmethod should-display? assistant-firecanyon ((obj assistant-firecanyon)) + (first-any (-> obj tasks) #t) + (= (current-status (-> obj tasks)) 6) + ) + +;; definition for method 11 of type assistant-firecanyon +(defmethod + copy-defaults! + assistant-firecanyon + ((obj assistant-firecanyon) (arg0 res-lump)) + (dummy-40 + obj + arg0 + *assistant-firecanyon-sg* + 3 + 29 + (new 'static 'vector :w 4096.0) + 5 + ) + (set! (-> obj tasks) (get-task-control (game-task firecanyon-assistant))) + (first-any (-> obj tasks) #t) + (dummy-42 obj) + (none) + ) + + + + diff --git a/test/decompiler/reference/levels/jungle/bouncer_REF.gc b/test/decompiler/reference/levels/jungle/bouncer_REF.gc new file mode 100644 index 0000000000..09cbc10378 --- /dev/null +++ b/test/decompiler/reference/levels/jungle/bouncer_REF.gc @@ -0,0 +1,310 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type springbox +(deftype springbox (process-drawable) + ((spring-height meters :offset-assert 176) + (smush float :offset-assert 180) + ) + :heap-base #x50 + :method-count-assert 20 + :size-assert #xb8 + :flag-assert #x14005000b8 + ) + +;; definition for method 3 of type springbox +(defmethod inspect springbox ((obj springbox)) + (let ((t9-0 (method-of-type process-drawable inspect))) + (t9-0 obj) + ) + (format #t "~T~Tspring-height: (meters ~m)~%" (-> obj spring-height)) + (format #t "~T~Tsmush: ~f~%" (-> obj smush)) + obj + ) + +;; failed to figure out what this is: +(method-set! springbox 12 (method-of-type process run-logic?)) + +;; failed to figure out what this is: +(let + ((v1-2 + (new 'static 'skeleton-group + :art-group-name "bounceytarp" + :bounds (new 'static 'vector :w 16384.0) + :version #x6 + ) + ) + ) + (set! (-> v1-2 jgeo) 0) + (set! (-> v1-2 janim) 2) + (set! (-> v1-2 mgeo 0) (the-as uint 1)) + (set! (-> v1-2 lod-dist 0) 4095996000.0) + (set! *bouncer-sg* v1-2) + ) + +;; failed to figure out what this is: +(defstate bouncer-wait (springbox) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'bonk) + (let ((a1-3 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-3 from) self) + (set! (-> a1-3 num-params) 3) + (set! (-> a1-3 message) 'jump) + (set! + (-> a1-3 param 0) + (the-as uint (-> self spring-height)) + ) + (set! + (-> a1-3 param 1) + (the-as uint (-> self spring-height)) + ) + (set! (-> a1-3 param 2) (the-as uint #f)) + (when (send-event-function arg0 a1-3) + (sound-play-by-name + (static-sound-name "trampoline") + (new-sound-id) + 1024 + 0 + 0 + (the-as uint 1) + (the-as vector #t) + ) + (go bouncer-fire) + ) + ) + ) + ((= v1-0 'touch) + (if + (not + (or + (= (-> self next-state name) 'bouncer-smush) + (= (-> self next-state name) 'bouncer-fire) + ) + ) + (go bouncer-smush) + ) + ) + ((= v1-0 'attack) + (when + (and + (= (-> arg3 param 1) 'flop) + (let ((a1-10 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-10 from) self) + (set! (-> a1-10 num-params) 3) + (set! (-> a1-10 message) 'jump) + (set! + (-> a1-10 param 0) + (the-as uint (-> self spring-height)) + ) + (set! + (-> a1-10 param 1) + (the-as uint (-> self spring-height)) + ) + (set! (-> a1-10 param 2) (the-as uint #f)) + (send-event-function arg0 a1-10) + ) + ) + (go bouncer-fire) + #f + ) + ) + ) + ) + ) + ) + :code + (behavior () + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 2)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) + ) + (transform-post) + (while #t + (logior! (-> self mask) (process-mask sleep)) + (suspend) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate bouncer-smush (springbox) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (case arg2 + (('touch) + (set! + (-> self state-time) + (the-as seconds (-> *display* base-frame-counter)) + ) + #f + ) + (else + ((-> bouncer-wait event) arg0 arg1 arg2 arg3) + ) + ) + ) + :code + (behavior () + (set! + (-> self state-time) + (the-as seconds (-> *display* base-frame-counter)) + ) + (set! (-> self smush) 0.0) + (while #t + (cond + ((>= + (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) + 60 + ) + (let ((a0-1 (-> self skel root-channel 0))) + (set! (-> a0-1 param 0) 0.0) + (set! (-> a0-1 param 1) 0.1) + (joint-control-channel-group-eval! + a0-1 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (else + (let ((gp-0 (-> self skel root-channel 0))) + (set! + (-> gp-0 param 0) + (lerp-scale + (ja-aframe 6.0 0) + (ja-aframe 2.0 0) + (vector-vector-xz-distance (target-pos 0) (-> self root trans)) + 0.0 + 4096.0 + ) + ) + (set! (-> gp-0 param 1) 0.2) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (suspend) + (if (ja-min? 0) + (go bouncer-wait) + ) + ) + (none) + ) + :post + (the-as (function none :behavior springbox) transform-post) + ) + +;; failed to figure out what this is: +(defstate bouncer-fire (springbox) + :code + (behavior () + (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30) + (let ((gp-0 (-> self skel root-channel 0))) + (set! + (-> gp-0 frame-group) + (the-as art-joint-anim (-> self draw art-group data 2)) + ) + (set! + (-> gp-0 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 2)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> gp-0 param 1) 1.0) + (set! (-> gp-0 frame-num) (ja-aframe 6.0 0)) + (joint-control-channel-group! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 2)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-3 (-> self skel root-channel 0))) + (set! + (-> a0-3 param 0) + (the float (+ (-> a0-3 frame-group data 0 length) -1)) + ) + (set! (-> a0-3 param 1) 1.0) + (joint-control-channel-group-eval! + a0-3 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (go bouncer-wait) + (none) + ) + :post + (the-as (function none :behavior springbox) transform-post) + ) + +;; definition for method 11 of type springbox +(defmethod copy-defaults! springbox ((obj springbox) (arg0 res-lump)) + (let + ((s4-0 + (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) + ) + ) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) nothing) + (let + ((s3-0 + (new + 'process + 'collide-shape-prim-mesh + s4-0 + (the-as uint 0) + (the-as uint 0) + ) + ) + ) + (set! (-> s3-0 prim-core collide-as) (the-as uint 128)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 0) + (set-vector! (-> s3-0 local-sphere) 0.0 3072.0 0.0 6963.2) + ) + (dummy-46 s4-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (dummy-50 s4-0) + (set! (-> obj root) s4-0) + ) + (process-drawable-from-entity! obj arg0) + (dummy-14 obj *bouncer-sg* '()) + (nav-mesh-connect obj (-> obj root) (the-as nav-control #f)) + (set! + (-> obj spring-height) + (res-lump-float arg0 'spring-height :default 45056.0) + ) + (go bouncer-wait) + (none) + ) + + + + diff --git a/test/decompiler/reference/levels/jungle/hopper_REF.gc b/test/decompiler/reference/levels/jungle/hopper_REF.gc new file mode 100644 index 0000000000..f892280062 --- /dev/null +++ b/test/decompiler/reference/levels/jungle/hopper_REF.gc @@ -0,0 +1,750 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type hopper +(deftype hopper (nav-enemy) + ((jump-length float :offset-assert 400) + (shadow-min-y float :offset-assert 404) + ) + :heap-base #x130 + :method-count-assert 76 + :size-assert #x198 + :flag-assert #x4c01300198 + ) + +;; definition for method 3 of type hopper +(defmethod inspect hopper ((obj hopper)) + (let ((t9-0 (method-of-type nav-enemy inspect))) + (t9-0 obj) + ) + (format #t "~T~Tjump-length: ~f~%" (-> obj jump-length)) + (format #t "~T~Tshadow-min-y: ~f~%" (-> obj shadow-min-y)) + obj + ) + +;; failed to figure out what this is: +(let + ((v1-1 + (new 'static 'skeleton-group + :art-group-name "hopper" + :bounds (new 'static 'vector :w 12288.0) + :max-lod 2 + :longest-edge (meters 1.0) + :version #x6 + :shadow 4 + ) + ) + ) + (set! (-> v1-1 jgeo) 0) + (set! (-> v1-1 janim) 5) + (set! (-> v1-1 mgeo 0) (the-as uint 1)) + (set! (-> v1-1 lod-dist 0) 81920.0) + (set! (-> v1-1 mgeo 1) (the-as uint 2)) + (set! (-> v1-1 lod-dist 1) 163840.0) + (set! (-> v1-1 mgeo 2) (the-as uint 3)) + (set! (-> v1-1 lod-dist 2) 4095996000.0) + (set! *hopper-sg* v1-1) + ) + +;; failed to figure out what this is: +nav-enemy-default-event-handler + +;; definition for method 39 of type hopper +;; INFO: Return type mismatch int vs none. +(defmethod TODO-RENAME-39 hopper ((obj hopper)) + (let ((v1-1 (-> obj draw shadow-ctrl))) + (set! + (-> v1-1 settings bot-plane w) + (- (- (-> obj shadow-min-y) (-> obj collide-info trans y))) + ) + ) + 0 + ((the-as (function nav-enemy none) (find-parent-method hopper 39)) obj) + 0 + (none) + ) + +;; definition for function hopper-find-ground +;; INFO: Return type mismatch int vs object. +;; Used lq/sq +(defbehavior hopper-find-ground hopper ((arg0 vector)) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (let ((t1-0 (new 'stack-no-clear 'bone)) + (f30-0 61440.0) + ) + (set! (-> s5-0 quad) (-> arg0 quad)) + (set! (-> s5-0 y) (+ 20480.0 (-> s5-0 y))) + (let + ((f0-2 + (dummy-12 + *collide-cache* + s5-0 + f30-0 + (the-as uint 1) + self + t1-0 + (the-as uint 1) + ) + ) + ) + (if (< f0-2 0.0) + (return (the-as object #f)) + ) + (set! (-> s5-0 y) (- (-> s5-0 y) (* f0-2 f30-0))) + ) + ) + (set! (-> arg0 quad) (-> s5-0 quad)) + ) + 0 + ) + +;; definition for function hopper-jump-to +;; INFO: Return type mismatch int vs none. +;; Used lq/sq +(defbehavior hopper-jump-to hopper ((arg0 vector)) + (set! (-> self jump-dest quad) (-> arg0 quad)) + (hopper-find-ground (-> self jump-dest)) + (set! + (-> self shadow-min-y) + (+ + (fmin (-> self collide-info trans y) (-> self jump-dest y)) + (-> self nav-info shadow-min-y) + ) + ) + (nav-enemy-initialize-custom-jump + (-> self jump-dest) + #f + (-> self nav-info jump-height-min) + (-> self nav-info jump-height-factor) + -409600.0 + ) + (set! (-> self nav-enemy-flags) (logand -513 (-> self nav-enemy-flags))) + (set! (-> self nav-enemy-flags) (logand -1025 (-> self nav-enemy-flags))) + (logior! (-> self nav-enemy-flags) 16) + (set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags))) + (when (not (nav-enemy-facing-point? (-> self jump-dest) 5461.3335)) + (ja-channel-push! 1 60) + (nav-enemy-turn-to-face-point (-> self jump-dest) 1820.4445) + ) + (set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags))) + (nav-enemy-execute-jump) + (set! + (-> self shadow-min-y) + (+ (-> self collide-info trans y) (-> self nav-info shadow-min-y)) + ) + (set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags))) + (nav-enemy-jump-land-anim) + 0 + (none) + ) + +;; definition for function hopper-do-jump +;; INFO: Return type mismatch int vs none. +(defbehavior hopper-do-jump hopper () + (dummy-11 (-> self nav) (-> self nav target-pos)) + (if (< (-> self jump-length) (vector-length (-> self nav travel))) + (vector-normalize! (-> self nav travel) (-> self jump-length)) + ) + (vector+! + (-> self jump-dest) + (-> self collide-info trans) + (-> self nav travel) + ) + (hopper-jump-to (-> self jump-dest)) + 0 + (none) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-idle (hopper) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior hopper) + nav-enemy-default-event-handler + ) + :code + (behavior () + (ja-channel-push! 1 22) + (while #t + (dotimes (gp-0 3) + (let ((a0-1 (-> self skel root-channel 0))) + (set! + (-> a0-1 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + (set! + (-> a0-1 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 5)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-1 param 1) 1.0) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! + a0-1 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! + (-> a0-2 param 0) + (the float (+ (-> a0-2 frame-group data 0 length) -1)) + ) + (set! (-> a0-2 param 1) 1.0) + (joint-control-channel-group-eval! + a0-2 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (let ((a0-4 (-> self skel root-channel 0))) + (set! + (-> a0-4 frame-group) + (the-as art-joint-anim (-> self draw art-group data 6)) + ) + (set! + (-> a0-4 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 6)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-4 param 1) 1.0) + (set! (-> a0-4 frame-num) 0.0) + (joint-control-channel-group! + a0-4 + (the-as art-joint-anim (-> self draw art-group data 6)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-5 (-> self skel root-channel 0))) + (set! + (-> a0-5 param 0) + (the float (+ (-> a0-5 frame-group data 0 length) -1)) + ) + (set! (-> a0-5 param 1) 1.0) + (joint-control-channel-group-eval! + a0-5 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-patrol (hopper) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior hopper) + nav-enemy-jump-event-handler + ) + :trans + (behavior () + (if (zero? (logand (-> self nav-enemy-flags) 8)) + ((-> (method-of-type nav-enemy nav-enemy-patrol) trans)) + ) + (none) + ) + :code + (behavior () + (vector-reset! (-> self collide-info transv)) + (set! (-> self jump-length) 16384.0) + (set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags))) + (while #t + (cond + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 7) + ) + (ja-channel-push! 1 20) + (let ((a0-6 (-> self skel root-channel 0))) + (set! + (-> a0-6 frame-group) + (the-as art-joint-anim (-> self draw art-group data 8)) + ) + (set! + (-> a0-6 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 8)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-6 param 1) 1.0) + (set! (-> a0-6 frame-num) 0.0) + (joint-control-channel-group! + a0-6 + (the-as art-joint-anim (-> self draw art-group data 8)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-7 (-> self skel root-channel 0))) + (set! + (-> a0-7 param 0) + (the float (+ (-> a0-7 frame-group data 0 length) -1)) + ) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! + a0-7 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (ja-channel-push! 1 30) + ) + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 9) + ) + (ja-channel-push! 1 30) + (let ((a0-15 (-> self skel root-channel 0))) + (set! + (-> a0-15 frame-group) + (the-as art-joint-anim (-> self draw art-group data 10)) + ) + (set! + (-> a0-15 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 10)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-15 param 1) 1.0) + (set! (-> a0-15 frame-num) 0.0) + (joint-control-channel-group! + a0-15 + (the-as art-joint-anim (-> self draw art-group data 10)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-16 (-> self skel root-channel 0))) + (set! + (-> a0-16 param 0) + (the float (+ (-> a0-16 frame-group data 0 length) -1)) + ) + (set! (-> a0-16 param 1) 1.0) + (joint-control-channel-group-eval! + a0-16 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (ja-channel-push! 1 30) + ) + (else + (ja-channel-push! 1 22) + ) + ) + (set! + (-> self state-time) + (the-as seconds (-> *display* base-frame-counter)) + ) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) + ) + (until + (>= + (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) + 150 + ) + (suspend) + (let ((a0-21 (-> self skel root-channel 0))) + (set! (-> a0-21 param 0) 1.0) + (joint-control-channel-group-eval! + a0-21 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + ) + (when + (or + (logtest? (nav-control-flags bit19) (-> self nav flags)) + (< 2.0 (-> self nav block-count)) + ) + (set! (-> self nav block-count) 0.0) + (logior! (-> self nav flags) (nav-control-flags bit10)) + (nav-enemy-get-new-patrol-point) + (set! (-> self nav target-pos quad) (-> self nav destination-pos quad)) + ) + (hopper-do-jump) + ) + (none) + ) + :post + (the-as (function none :behavior hopper) nav-enemy-jump-post) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-notice (hopper) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior hopper) + nav-enemy-default-event-handler + ) + :code + (behavior () + (go-virtual nav-enemy-chase) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-chase (hopper) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior hopper) + nav-enemy-jump-event-handler + ) + :trans + (behavior () + (if (zero? (logand (-> self nav-enemy-flags) 8)) + ((-> (method-of-type nav-enemy nav-enemy-chase) trans)) + ) + (none) + ) + :code + (behavior () + (vector-reset! (-> self collide-info transv)) + (set! (-> self jump-length) 32768.0) + (set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags))) + (while #t + (cond + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 7) + ) + (ja-channel-push! 1 20) + (let ((a0-6 (-> self skel root-channel 0))) + (set! + (-> a0-6 frame-group) + (the-as art-joint-anim (-> self draw art-group data 8)) + ) + (set! + (-> a0-6 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 8)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-6 param 1) 1.0) + (set! (-> a0-6 frame-num) 0.0) + (joint-control-channel-group! + a0-6 + (the-as art-joint-anim (-> self draw art-group data 8)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-7 (-> self skel root-channel 0))) + (set! + (-> a0-7 param 0) + (the float (+ (-> a0-7 frame-group data 0 length) -1)) + ) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! + a0-7 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (ja-channel-push! 1 30) + ) + ((= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 9) + ) + (ja-channel-push! 1 30) + (let ((a0-15 (-> self skel root-channel 0))) + (set! + (-> a0-15 frame-group) + (the-as art-joint-anim (-> self draw art-group data 10)) + ) + (set! + (-> a0-15 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 10)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-15 param 1) 1.0) + (set! (-> a0-15 frame-num) 0.0) + (joint-control-channel-group! + a0-15 + (the-as art-joint-anim (-> self draw art-group data 10)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-16 (-> self skel root-channel 0))) + (set! + (-> a0-16 param 0) + (the float (+ (-> a0-16 frame-group data 0 length) -1)) + ) + (set! (-> a0-16 param 1) 1.0) + (joint-control-channel-group-eval! + a0-16 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (ja-channel-push! 1 30) + ) + (else + (ja-channel-push! 1 22) + ) + ) + (set! + (-> self state-time) + (the-as seconds (-> *display* base-frame-counter)) + ) + (let ((gp-0 (-> self skel root-channel 0))) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-identity + ) + (set! (-> gp-0 frame-num) 0.0) + ) + (until + (>= + (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) + 60 + ) + (suspend) + (let ((a0-21 (-> self skel root-channel 0))) + (set! (-> a0-21 param 0) 1.0) + (joint-control-channel-group-eval! + a0-21 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + ) + (set! (-> self nav target-pos quad) (-> (target-pos 0) quad)) + (hopper-do-jump) + ) + (none) + ) + :post + (the-as (function none :behavior hopper) nav-enemy-jump-post) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-stop-chase (hopper) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior hopper) + nav-enemy-default-event-handler + ) + :code + (behavior () + (go-virtual nav-enemy-stare) + (none) + ) + ) + +;; definition for symbol *hopper-nav-enemy-info*, type nav-enemy-info +(define + *hopper-nav-enemy-info* + (new 'static 'nav-enemy-info + :idle-anim 5 + :walk-anim 5 + :turn-anim 9 + :notice-anim 5 + :run-anim 5 + :jump-anim 7 + :jump-land-anim 8 + :victory-anim 6 + :taunt-anim 6 + :die-anim 11 + :neck-joint -1 + :player-look-at-joint 5 + :run-travel-speed (meters 10.0) + :run-rotate-speed (degrees 7999.9995) + :run-acceleration (meters 1.0) + :run-turn-time #x1e + :walk-travel-speed (meters 6.0) + :walk-rotate-speed (degrees 7999.9995) + :walk-acceleration (meters 1.0) + :walk-turn-time #x1e + :attack-shove-back (meters 3.0) + :attack-shove-up (meters 2.0) + :shadow-size (meters 2.0) + :notice-nav-radius (meters 1.0) + :nav-nearest-y-threshold (meters 10.0) + :notice-distance (meters 30.0) + :stop-chase-distance (meters 40.0) + :frustration-distance (meters 8.0) + :frustration-time #x4b0 + :die-anim-hold-frame 10000000000.0 + :jump-anim-start-frame 3.0 + :jump-land-anim-end-frame 10000000000.0 + :jump-height-min (meters 3.0) + :jump-height-factor 0.5 + :jump-start-anim-speed 1.0 + :shadow-max-y (meters 1.0) + :shadow-min-y (meters -1.0) + :shadow-locus-dist (meters 150.0) + :use-align #t + :draw-shadow #t + :move-to-ground #t + :hover-if-no-ground #f + :use-momentum #f + :use-flee #t + :use-proximity-notice #f + :use-jump-blocked #f + :use-jump-patrol #f + :gnd-collide-with #x1 + :debug-draw-neck #f + :debug-draw-jump #t + ) + ) + +;; definition for method 47 of type hopper +;; INFO: Return type mismatch int vs none. +(defmethod TODO-RENAME-47 hopper ((obj hopper)) + (let + ((s5-0 + (new + 'process + 'collide-shape-moving + obj + (collide-list-enum usually-hit-by-player) + ) + ) + ) + (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s5-0 reaction) default-collision-reaction) + (set! (-> s5-0 no-reaction) nothing) + (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) + (set! (-> s4-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s4-0 collide-with) (the-as uint 16)) + (set! (-> s4-0 prim-core action) (the-as uint 1)) + (set-vector! (-> s4-0 local-sphere) 0.0 4096.0 0.0 10240.0) + (dummy-46 s5-0) + (let ((s3-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 1) + (set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 4096.0) + ) + (dummy-28 s4-0) + (let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 3)))) + (set! (-> s3-1 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-1 collide-with) (the-as uint 16)) + (set! (-> s3-1 prim-core action) (the-as uint 1)) + (set! (-> s3-1 prim-core offense) 1) + (set-vector! (-> s3-1 local-sphere) 0.0 6963.2 0.0 4096.0) + ) + (dummy-28 s4-0) + ) + (set! (-> s5-0 nav-radius) 6144.0) + (dummy-50 s5-0) + (set! (-> s5-0 max-iteration-count) (the-as uint 2)) + (set! (-> obj collide-info) s5-0) + ) + 0 + (none) + ) + +;; definition for method 48 of type hopper +;; INFO: Return type mismatch int vs none. +(defmethod TODO-RENAME-48 hopper ((obj hopper)) + (dummy-14 obj *hopper-sg* '()) + (TODO-RENAME-45 obj *hopper-nav-enemy-info*) + (set! + (-> obj shadow-min-y) + (+ (-> obj collide-info trans y) (-> obj nav-info shadow-min-y)) + ) + 0 + (none) + ) + + + + diff --git a/test/decompiler/reference/levels/jungle/jungle-elevator_REF.gc b/test/decompiler/reference/levels/jungle/jungle-elevator_REF.gc new file mode 100644 index 0000000000..919e46af67 --- /dev/null +++ b/test/decompiler/reference/levels/jungle/jungle-elevator_REF.gc @@ -0,0 +1,228 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type jungle-elevator +(deftype jungle-elevator (plat-button) + ((bottom-height float :offset-assert 240) + (teleport-if-below-y float :offset-assert 244) + (teleport-if-above-y float :offset-assert 248) + ) + :heap-base #x90 + :method-count-assert 33 + :size-assert #xfc + :flag-assert #x21009000fc + ) + +;; definition for method 3 of type jungle-elevator +(defmethod inspect jungle-elevator ((obj jungle-elevator)) + (let ((t9-0 (method-of-type plat-button inspect))) + (t9-0 obj) + ) + (format #t "~T~Tbottom-height: ~f~%" (-> obj bottom-height)) + (format #t "~T~Tteleport-if-below-y: ~f~%" (-> obj teleport-if-below-y)) + (format #t "~T~Tteleport-if-above-y: ~f~%" (-> obj teleport-if-above-y)) + obj + ) + +;; definition for method 26 of type jungle-elevator +(defmethod can-activate? jungle-elevator ((obj jungle-elevator)) + (and + ((method-of-type plat-button can-activate?) obj) + (task-complete? *game-info* (game-task jungle-tower)) + ) + ) + +;; failed to figure out what this is: +(defstate plat-button-move-downward (jungle-elevator) + :virtual #t + :enter + (behavior () + (let + ((t9-0 (-> (method-of-type plat-button plat-button-move-downward) enter))) + (if t9-0 + (t9-0) + ) + ) + (set! (-> self draw light-index) (the-as uint 255)) + (set! (-> self bottom-height) (-> jungle bottom-height)) + (set! (-> jungle bottom-height) (-> jungleb bottom-height)) + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 1) + (set! (-> a1-0 message) 'reset-pickup) + (set! (-> a1-0 param 0) (the-as uint 'eco)) + (send-event-function *target* a1-0) + ) + (none) + ) + :exit + (behavior () + (set! (-> jungle bottom-height) (-> self bottom-height)) + (let + ((t9-0 (-> (method-of-type plat-button plat-button-move-downward) exit))) + (if t9-0 + (t9-0) + ) + ) + (none) + ) + :trans + (behavior () + (let ((s5-0 (new 'stack-no-clear 'vector)) + (gp-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s5-0 quad) (-> self root-override trans quad)) + (let + ((t9-1 + (-> + (the-as (state plat-button) (find-parent-method jungle-elevator 23)) + trans + ) + ) + ) + (if t9-1 + (t9-1) + ) + ) + (vector-! gp-0 (-> self root-override trans) s5-0) + ) + (when (< (-> self path-pos) 0.9) + (TODO-RENAME-28 (-> *target* control)) + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) self) + (set! (-> a1-2 num-params) 0) + (set! (-> a1-2 message) 'reset-height) + (send-event-function *target* a1-2) + ) + ) + (if + (and + (>= (-> self path-pos) 0.2) + (< + (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) + 60 + ) + ) + (load-commands-set! *level* (load-command-get-index *level* 'jungle 0)) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate plat-button-move-upward (jungle-elevator) + :virtual #t + :enter + (behavior () + (let ((t9-0 (-> (method-of-type plat-button plat-button-move-upward) enter))) + (if t9-0 + (t9-0) + ) + ) + (set! (-> self draw light-index) (the-as uint 255)) + (set! (-> self bottom-height) (-> jungle bottom-height)) + (set! (-> jungle bottom-height) (-> jungleb bottom-height)) + (set! (-> self grab-player?) (process-grab? *target*)) + (none) + ) + :exit + (behavior () + (set! (-> jungle bottom-height) (-> self bottom-height)) + (let ((t9-0 (-> (method-of-type plat-button plat-button-move-upward) exit))) + (if t9-0 + (t9-0) + ) + ) + (none) + ) + :trans + (behavior () + (let ((t9-0 (-> (method-of-type plat-button plat-button-move-upward) trans))) + (if t9-0 + (t9-0) + ) + ) + (if + (and + (< (-> self path-pos) 0.8) + (< + (- (-> *display* base-frame-counter) (the-as int (-> self state-time))) + 60 + ) + ) + (load-commands-set! *level* (load-command-get-index *level* 'jungle 1)) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate plat-button-at-end (jungle-elevator) + :virtual #t + :code + (behavior () + (cond + ((!= (-> self path-pos) 0.0) + (set! (-> self draw light-index) (the-as uint 1)) + (let ((a1-1 (res-lump-struct (-> self entity) 'continue-name structure))) + (when a1-1 + (let ((v1-4 (set-continue! *game-info* (the-as basic a1-1)))) + (load-commands-set! *level* (-> v1-4 load-commands)) + ) + ) + ) + ) + (else + (set! (-> self draw light-index) (the-as uint 255)) + (load-commands-set! *level* '()) + ) + ) + (let ((t9-4 (-> (method-of-type plat-button plat-button-at-end) code))) + (if t9-4 + ((the-as (function none :behavior plat-button) t9-4)) + ) + ) + (none) + ) + ) + +;; definition for method 30 of type jungle-elevator +(defmethod should-teleport? jungle-elevator ((obj jungle-elevator)) + (let ((f0-0 (-> (camera-pos) y))) + (case (-> obj path-pos) + ((0.0) + (when (< f0-0 (-> obj teleport-if-below-y)) + (set! (-> obj draw light-index) (the-as uint 1)) + (return #t) + ) + ) + ((1.0) + (when (< (-> obj teleport-if-above-y) f0-0) + (set! (-> obj draw light-index) (the-as uint 255)) + (return #t) + ) + ) + ) + ) + #f + ) + +;; definition for method 29 of type jungle-elevator +(defmethod can-target-move? jungle-elevator ((obj jungle-elevator)) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (eval-path-curve! (-> obj path) s5-0 0.4 'interp) + (set! (-> obj teleport-if-above-y) (-> s5-0 y)) + (eval-path-curve! (-> obj path) s5-0 0.6 'interp) + (set! (-> obj teleport-if-below-y) (-> s5-0 y)) + ) + (set! (-> obj draw light-index) (the-as uint 255)) + (set! (-> obj bidirectional?) #f) + (let ((v0-2 #t)) + (set! (-> obj should-grab-player?) v0-2) + v0-2 + ) + ) + + + + diff --git a/test/decompiler/reference/levels/jungle/junglefish_REF.gc b/test/decompiler/reference/levels/jungle/junglefish_REF.gc new file mode 100644 index 0000000000..50e5dff933 --- /dev/null +++ b/test/decompiler/reference/levels/jungle/junglefish_REF.gc @@ -0,0 +1,657 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type junglefish +(deftype junglefish (nav-enemy) + () + :heap-base #x120 + :method-count-assert 76 + :size-assert #x190 + :flag-assert #x4c01200190 + ) + +;; definition for method 3 of type junglefish +(defmethod inspect junglefish ((obj junglefish)) + (let ((t9-0 (method-of-type nav-enemy inspect))) + (t9-0 obj) + ) + obj + ) + +;; failed to figure out what this is: +(let + ((v1-1 + (new 'static 'skeleton-group + :art-group-name "junglefish" + :bounds + (new 'static 'vector :y 4096.0 :w 6144.0) + :max-lod 2 + :version #x6 + ) + ) + ) + (set! (-> v1-1 jgeo) 0) + (set! (-> v1-1 janim) 4) + (set! (-> v1-1 mgeo 0) (the-as uint 1)) + (set! (-> v1-1 lod-dist 0) 81920.0) + (set! (-> v1-1 mgeo 1) (the-as uint 2)) + (set! (-> v1-1 lod-dist 1) 163840.0) + (set! (-> v1-1 mgeo 2) (the-as uint 3)) + (set! (-> v1-1 lod-dist 2) 4095996000.0) + (set! *junglefish-sg* v1-1) + ) + +;; failed to figure out what this is: +nav-enemy-default-event-handler + +;; definition for method 39 of type junglefish +;; INFO: Return type mismatch int vs none. +(defmethod TODO-RENAME-39 junglefish ((obj junglefish)) + ((method-of-object (-> obj water) dummy-10)) + ((the-as (function nav-enemy none) (find-parent-method junglefish 39)) obj) + 0 + (none) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-patrol (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :exit + (behavior () + (set! (-> self target-speed) (-> self nav-info walk-travel-speed)) + (none) + ) + :code + (behavior () + (ja-channel-push! 1 60) + (let ((f30-0 (nav-enemy-rnd-float-range 0.9 1.1))) + (while #t + (let ((a0-2 (-> self skel root-channel 0))) + (set! + (-> a0-2 frame-group) + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info walk-anim)) + ) + ) + (set! + (-> a0-2 param 0) + (the + float + (+ + (-> + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info walk-anim)) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-2 param 1) f30-0) + (set! (-> a0-2 frame-num) 0.0) + (joint-control-channel-group! + a0-2 + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info walk-anim)) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-3 (-> self skel root-channel 0))) + (set! + (-> a0-3 param 0) + (the float (+ (-> a0-3 frame-group data 0 length) -1)) + ) + (set! (-> a0-3 param 1) f30-0) + (joint-control-channel-group-eval! + a0-3 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (when (nav-enemy-rnd-go-idle? 0.2) + (let ((a0-6 (-> self skel root-channel 0))) + (set! (-> a0-6 param 0) 1.0) + (joint-control-channel-group! + a0-6 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + (ja-channel-push! 1 180) + (set! (-> self target-speed) 0.0) + (let ((a0-8 (-> self skel root-channel 0))) + (set! + (-> a0-8 frame-group) + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info idle-anim)) + ) + ) + (set! + (-> a0-8 param 0) + (the + float + (+ + (-> + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info idle-anim)) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-8 param 1) f30-0) + (set! (-> a0-8 frame-num) 0.0) + (joint-control-channel-group! + a0-8 + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info idle-anim)) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (ja-blend-eval) + (suspend) + (let ((a0-9 (-> self skel root-channel 0))) + (set! + (-> a0-9 param 0) + (the float (+ (-> a0-9 frame-group data 0 length) -1)) + ) + (set! (-> a0-9 param 1) f30-0) + (joint-control-channel-group-eval! + a0-9 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (until (not (nav-enemy-rnd-go-idle? 0.2)) + (let ((a0-11 (-> self skel root-channel 0))) + (set! + (-> a0-11 frame-group) + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info idle-anim)) + ) + ) + (set! + (-> a0-11 param 0) + (the + float + (+ + (-> + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info idle-anim)) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-11 param 1) f30-0) + (set! (-> a0-11 frame-num) 0.0) + (joint-control-channel-group! + a0-11 + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info idle-anim)) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-12 (-> self skel root-channel 0))) + (set! + (-> a0-12 param 0) + (the float (+ (-> a0-12 frame-group data 0 length) -1)) + ) + (set! (-> a0-12 param 1) f30-0) + (joint-control-channel-group-eval! + a0-12 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (set! (-> self target-speed) (-> self nav-info walk-travel-speed)) + (let ((a0-15 (-> self skel root-channel 0))) + (set! (-> a0-15 param 0) 1.0) + (joint-control-channel-group! + a0-15 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + (ja-channel-push! 1 180) + (let ((a0-17 (-> self skel root-channel 0))) + (set! + (-> a0-17 frame-group) + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info walk-anim)) + ) + ) + (set! + (-> a0-17 param 0) + (the + float + (+ + (-> + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info walk-anim)) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-17 param 1) f30-0) + (set! (-> a0-17 frame-num) 0.0) + (joint-control-channel-group! + a0-17 + (the-as + art-joint-anim + (-> self draw art-group data (-> self nav-info walk-anim)) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (ja-blend-eval) + (suspend) + (let ((a0-18 (-> self skel root-channel 0))) + (set! + (-> a0-18 param 0) + (the float (+ (-> a0-18 frame-group data 0 length) -1)) + ) + (set! (-> a0-18 param 1) f30-0) + (joint-control-channel-group-eval! + a0-18 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-notice (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :code + (behavior () + (go-virtual nav-enemy-chase) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-chase (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :trans + (behavior () + ((-> (method-of-type nav-enemy nav-enemy-chase) trans)) + (if + (and + *target* + (>= + 8192.0 + (vector-vector-distance + (-> self collide-info trans) + (-> *target* control trans) + ) + ) + ) + (go-virtual nav-enemy-attack) + ) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-stop-chase (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :code + (behavior () + (go-virtual nav-enemy-patrol) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-stare (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :code + (behavior () + (go-virtual nav-enemy-patrol) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-give-up (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :code + (behavior () + (go-virtual nav-enemy-patrol) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-attack (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :code + (behavior () + (ja-channel-push! 1 30) + (let ((a0-1 (-> self skel root-channel 0))) + (set! + (-> a0-1 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + (set! + (-> a0-1 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 5)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-1 param 1) 1.0) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! + a0-1 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! + (-> a0-2 param 0) + (the float (+ (-> a0-2 frame-group data 0 length) -1)) + ) + (set! (-> a0-2 param 1) 1.0) + (joint-control-channel-group-eval! + a0-2 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (go-virtual nav-enemy-chase) + (none) + ) + :post + (the-as (function none :behavior junglefish) nav-enemy-chase-post) + ) + +;; failed to figure out what this is: +(defstate nav-enemy-victory (junglefish) + :virtual #t + :event + (the-as + (function process int symbol event-message-block object :behavior junglefish) + nav-enemy-default-event-handler + ) + :code + (behavior () + (ja-channel-push! 1 22) + (let ((a0-1 (-> self skel root-channel 0))) + (set! + (-> a0-1 frame-group) + (the-as art-joint-anim (-> self draw art-group data 4)) + ) + (set! + (-> a0-1 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 4)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-1 param 1) 2.0) + (set! (-> a0-1 frame-num) 0.0) + (joint-control-channel-group! + a0-1 + (the-as art-joint-anim (-> self draw art-group data 4)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-2 (-> self skel root-channel 0))) + (set! + (-> a0-2 param 0) + (the float (+ (-> a0-2 frame-group data 0 length) -1)) + ) + (set! (-> a0-2 param 1) 2.0) + (joint-control-channel-group-eval! + a0-2 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((a0-4 (-> self skel root-channel 0))) + (set! + (-> a0-4 frame-group) + (the-as art-joint-anim (-> self draw art-group data 4)) + ) + (set! + (-> a0-4 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 4)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-4 param 1) 2.0) + (set! (-> a0-4 frame-num) 0.0) + (joint-control-channel-group! + a0-4 + (the-as art-joint-anim (-> self draw art-group data 4)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-5 (-> self skel root-channel 0))) + (set! + (-> a0-5 param 0) + (the float (+ (-> a0-5 frame-group data 0 length) -1)) + ) + (set! (-> a0-5 param 1) 2.0) + (joint-control-channel-group-eval! + a0-5 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (go-virtual nav-enemy-patrol) + (none) + ) + ) + +;; definition for symbol *junglefish-nav-enemy-info*, type nav-enemy-info +(define + *junglefish-nav-enemy-info* + (new 'static 'nav-enemy-info + :idle-anim 4 + :walk-anim 4 + :turn-anim -1 + :notice-anim 4 + :run-anim 4 + :jump-anim -1 + :jump-land-anim -1 + :victory-anim 4 + :taunt-anim 4 + :die-anim 6 + :neck-joint -1 + :player-look-at-joint 5 + :run-travel-speed (meters 5.5) + :run-rotate-speed (degrees 720.0) + :run-acceleration (meters 6.0) + :run-turn-time #x2d + :walk-travel-speed (meters 4.0) + :walk-rotate-speed (degrees 720.0) + :walk-acceleration (meters 6.0) + :walk-turn-time #x2d + :attack-shove-back (meters 1.0) + :attack-shove-up (meters 0.5) + :shadow-size (meters 2.0) + :notice-nav-radius (meters 1.0) + :nav-nearest-y-threshold (meters 10.0) + :notice-distance (meters 25.0) + :stop-chase-distance (meters 35.0) + :frustration-distance (meters 8.0) + :frustration-time #x4b0 + :die-anim-hold-frame 10000000000.0 + :jump-land-anim-end-frame 10000000000.0 + :jump-height-min (meters 1.0) + :jump-height-factor 0.5 + :jump-start-anim-speed 1.0 + :shadow-max-y (meters 1.0) + :shadow-min-y (meters -1.0) + :shadow-locus-dist (meters 150.0) + :use-align #f + :draw-shadow #f + :move-to-ground #f + :hover-if-no-ground #f + :use-momentum #t + :use-flee #f + :use-proximity-notice #f + :use-jump-blocked #f + :use-jump-patrol #f + :gnd-collide-with #x1 + :debug-draw-neck #f + :debug-draw-jump #f + ) + ) + +;; definition for method 11 of type junglefish +(defmethod copy-defaults! junglefish ((obj junglefish) (arg0 res-lump)) + (let + ((s4-0 + (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)) + ) + ) + (set! (-> s4-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s4-0 reaction) default-collision-reaction) + (set! (-> s4-0 no-reaction) nothing) + (let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 3)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 256)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 1) + (set-vector! (-> s3-0 local-sphere) 0.0 3276.8 0.0 2457.6) + ) + (dummy-46 s4-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (dummy-50 s4-0) + (set! (-> obj collide-info) s4-0) + ) + (process-drawable-from-entity! obj arg0) + (dummy-14 obj *junglefish-sg* '()) + (TODO-RENAME-45 obj *junglefish-nav-enemy-info*) + (set! (-> obj water) (new 'process 'water-control obj 7 0.0 8192.0 2048.0)) + (set! (-> obj water flags) (the-as uint 2)) + (set! (-> obj water height) (res-lump-float (-> obj entity) 'water-height)) + (set! (-> obj water ripple-size) 5734.4) + (set! (-> obj collide-info trans y) (+ -4096.0 (-> obj water height))) + (go (method-of-object obj nav-enemy-idle)) + (none) + ) + + + + diff --git a/test/decompiler/reference/levels/misty/sidekick-human_REF.gc b/test/decompiler/reference/levels/misty/sidekick-human_REF.gc new file mode 100644 index 0000000000..ad8f28270b --- /dev/null +++ b/test/decompiler/reference/levels/misty/sidekick-human_REF.gc @@ -0,0 +1,6808 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type sequenceA +(deftype sequenceA (process-hidden) + () + :method-count-assert 15 + :size-assert #x70 + :flag-assert #xf00000070 + ) + +;; definition for method 3 of type sequenceA +(defmethod inspect sequenceA ((obj sequenceA)) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~Tname: ~A~%" (-> obj name)) + (format #t "~Tmask: ~D~%" (-> obj mask)) + (format #t "~Tparent: #x~X~%" (-> obj parent)) + (format #t "~Tbrother: #x~X~%" (-> obj brother)) + (format #t "~Tchild: #x~X~%" (-> obj child)) + (format #t "~Tppointer: #x~X~%" (-> obj ppointer)) + (format #t "~Tself: ~A~%" (-> obj self)) + (format #t "~Tpool: ~A~%" (-> obj pool)) + (format #t "~Tstatus: ~A~%" (-> obj status)) + (format #t "~Tpid: ~D~%" (-> obj pid)) + (format #t "~Tmain-thread: ~A~%" (-> obj main-thread)) + (format #t "~Ttop-thread: ~A~%" (-> obj top-thread)) + (format #t "~Tentity: ~A~%" (-> obj entity)) + (format #t "~Tstate: ~A~%" (-> obj state)) + (format #t "~Ttrans-hook: ~A~%" (-> obj trans-hook)) + (format #t "~Tpost-hook: ~A~%" (-> obj post-hook)) + (format #t "~Tevent-hook: ~A~%" (-> obj event-hook)) + (format #t "~Tallocated-length: ~D~%" (-> obj allocated-length)) + (format #t "~Tnext-state: ~A~%" (-> obj next-state)) + (format #t "~Theap-base: #x~X~%" (-> obj heap-base)) + (format #t "~Theap-top: #x~X~%" (-> obj heap-top)) + (format #t "~Theap-cur: #x~X~%" (-> obj heap-cur)) + (format #t "~Tstack-frame-top: ~A~%" (-> obj stack-frame-top)) + (format #t "~Theap: #~%" (&-> obj heap-base)) + (format #t "~Tconnection-list: ~`'connectable`P~%" (-> obj connection-list)) + (format #t "~Tstack[0] @ #x~X~%" (-> obj stack)) + obj + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 657) + (new 'static 'sparticle-launch-group + :length 8 + :duration #xbb8 + :linger-duration #x5dc + :flags #x4 + :name "group-2d-intro-mist" + :launcher + (new 'static 'inline-array sparticle-group-item 8 + (new 'static 'sparticle-group-item + :launcher #xa69 + :period #x12c + :length #x5 + :binding #xa67 + ) + (new 'static 'sparticle-group-item + :launcher #xa67 + :flags #xc + :binding #xa68 + ) + (new 'static 'sparticle-group-item + :launcher #xa67 + :flags #xc + :binding #xa68 + ) + (new 'static 'sparticle-group-item :launcher #xa68 :flags #x4) + (new 'static 'sparticle-group-item :launcher #xa68 :flags #x4) + (new 'static 'sparticle-group-item :launcher #xa68 :flags #x4) + (new 'static 'sparticle-group-item :launcher #xa6a) + (new 'static 'sparticle-group-item :launcher #xa6b) + ) + :bounds (new 'static 'sphere :w 8192.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2665) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 13 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201200) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :initial-value -970981376 + :random-range #x46a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -977272832 + :random-range #x46400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value #x415a740e + :random-range #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x258 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value 8 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x3c + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2663) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 20 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :initial-value #x45000000 + :random-range #x444ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :random-range #x42c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x18 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x19 + :flags #x2 + :initial-value -1017482226 + :random-range 1 + :random-mult #x43da740e + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1063329782 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x2 + :initial-value -1034259442 + :random-range 1 + :random-mult #x42da740e + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x258 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x8c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2664) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 16 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45000000 + :random-range #x4499999a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42000000 + :random-range #x42c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1064333800 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :random-range -1106522267 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 30 + :random-range #x12b + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value 12 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #xf0 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value #xc6) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2667) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 12 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x203600) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :initial-value -965083136 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x47700000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x47400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 5 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2666) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3e99999a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :initial-value -964689920 + :random-range #x47000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -968884224 + :random-range #x46c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :random-range #x465ac000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x46c00000 + :random-range #x47000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x46c00000 + :random-range #x47000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x41800000 + :random-range #x42a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x41800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x41800000 + :random-range #x43160000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1059425266 + :random-range #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1051036658 + :random-range #x41da740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3e5a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x5dc + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x96 + :random-range #x95 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #xa6c + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2668) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 4 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x12c + :random-range #x12b + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #xa6d + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2669) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1101368306 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 557) + (new 'static 'sparticle-launch-group + :length #x101 + :duration #x384 + :linger-duration #x5dc + :flags #x1 + :name "group-evilsib-appear" + :launcher + (new 'static 'inline-array sparticle-group-item 257 + (new 'static 'sparticle-group-item + :launcher #x929 + :period #x5dc + :length #x14 + :offset #x5dc + ) + (new 'static 'sparticle-group-item + :launcher #x92a + :period #x5dc + :length #x14 + :offset #x5dc + ) + (new 'static 'sparticle-group-item + :launcher #x92b + :period #x5dc + :length #x5 + :offset #x5dc + ) + (new 'static 'sparticle-group-item + :launcher #x92c + :period #x5dc + :length #x14 + :offset #x5dc + ) + (new 'static 'sparticle-group-item + :launcher #x92d + :period #x5dc + :length #x384 + :offset #x2ee + :binding #x928 + ) + (new 'static 'sparticle-group-item + :launcher #x92e + :period #x5dc + :length #x2ee + :offset #x258 + :binding #x928 + ) + (new 'static 'sparticle-group-item + :launcher #x92f + :period #x5dc + :length #x258 + :offset #x1c2 + :binding #x928 + ) + (new 'static 'sparticle-group-item + :launcher #x92f + :period #x5dc + :length #x1c2 + :offset #x12c + :binding #x928 + ) + (new 'static 'sparticle-group-item + :launcher #x930 + :period #x5dc + :length #x12c + :offset #x96 + :binding #x928 + ) + (new 'static 'sparticle-group-item + :launcher #x930 + :period #x5dc + :length #x96 + :binding #x928 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x928 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + ) + :bounds (new 'static 'sphere :w 262144.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2349) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 18 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -981467136 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1039031628 + :random-range #x4291a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x258 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4000 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2353) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1101368306 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2350) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -981467136 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1039031628 + :random-range #x4291a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3e5a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x258 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x931 + ) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2351) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x4499999a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :random-range #x46000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1039031628 + :random-range #x4291a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3e5a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x258 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x931 + ) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2352) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 21 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -989855744 + :random-range #x45800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1039031628 + :random-range #x4291a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3e5a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x258 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x931 + ) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2344) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 24 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :initial-value #x46a00000 + :random-range #x45c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x434ccccd + :random-range #x434ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x18 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x19 + :flags #x1 + :initial-value -1013468122 + :random-range #x4417b426 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1b + :flags #x1 + :initial-value -1032469873 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x4003126f + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1027461563 + :random-range #x43422e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x408c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x10e + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x932 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2354) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1068708659 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2345) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 25 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x45800000 + :random-range #x46000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x43cccccd + :random-range #x444ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43400000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :random-range #x445a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1070677186 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value -1092979698 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1087454402 + :random-range -1067813874 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2d + :flags #x1 + :initial-value #x3f4ccccd + :random-range #x3d4ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x5dc + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4005 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 30 + :random-range #x2ed + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x933 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3c + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :random-range #x46000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2355) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 3 + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2346) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 25 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :random-range #x46400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x43cccccd + :random-range #x44cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43400000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :random-range #x42da740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1070677186 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value -1092979698 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1087454402 + :random-range -1067813874 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2d + :flags #x1 + :initial-value #x3f400000 + :random-range #x3d4ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x5dc + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4005 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 30 + :random-range #x2ed + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x933 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3c + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :initial-value #x45000000 + :random-range #x45800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2347) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 14 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201200) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x46000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x47e00000 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43400000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value -1072369143 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1072369143 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 5 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2348) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 17 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x40000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x45000000 + :random-range #x46000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x44800000 + :random-range #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42000000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x1 + :initial-value #x4519999a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x21 + :flags #x1 + :initial-value -1073182583 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value -1073182583 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1081571191 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 60 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 558) + (new 'static 'sparticle-launch-group + :length 79 + :duration #xbb8 + :linger-duration #x5dc + :flags #x1 + :name "group-evilsib-hover" + :launcher + (new 'static 'inline-array sparticle-group-item 79 + (new 'static 'sparticle-group-item :launcher #x952 :binding #x951) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item + :launcher #x951 + :flags #xe + :binding #x950 + ) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + (new 'static 'sparticle-group-item :launcher #x950 :flags #x6) + ) + :bounds (new 'static 'sphere :w 32768.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2386) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 11 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x44800000 + :random-range #x45c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x444ccccd + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1073540497 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4000 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2385) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 25 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :initial-value #x44800000 + :random-range #x44800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x434ccccd + :random-range #x42cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x18 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x19 + :flags #x1 + :initial-value -1019868320 + :random-range #x43b60b60 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1b + :flags #x1 + :initial-value #x41360b61 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x3f91a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1027461563 + :random-range #x43422e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x40888889 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x408c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 30 + :random-range 14 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x954 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2388) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 4 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value #x96 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #x955 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2389) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 5 + (new 'static 'sp-field-init-spec + :field #x1b + :flags #x1 + :initial-value -1039628151 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1076202482 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1081571191 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2384) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 17 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201200) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3dcccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x44cccccd + :random-range #x444ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1024081265 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1027461563 + :random-range #x43422e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1063675494 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1079065794 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 15 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 560) + (new 'static 'sparticle-launch-group + :length 1 + :duration #x384 + :linger-duration #x5dc + :flags #x1 + :name "group-sequenceC-glowing-can" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (new 'static 'sparticle-group-item :launcher #x8fa) + ) + :bounds (new 'static 'sphere :w 262144.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2298) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 18 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :initial-value -998244352 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -998244352 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :initial-value -998244352 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x45800000 + :random-range #x45800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x42c00000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42000000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1017482226 + :random-range #x43da740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1092979698 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x96 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value 12 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 561) + (new 'static 'sparticle-launch-group + :length 69 + :duration #x384 + :linger-duration #x5dc + :flags #x1 + :name "group-sequenceC-exploding-can" + :launcher + (new 'static 'inline-array sparticle-group-item 69 + (new 'static 'sparticle-group-item + :launcher #xae1 + :period #x708 + :length #x5 + ) + (new 'static 'sparticle-group-item + :launcher #xae2 + :period #x708 + :length #x28 + ) + (new 'static 'sparticle-group-item + :launcher #xae3 + :period #x708 + :length #x14 + ) + (new 'static 'sparticle-group-item + :launcher #xae4 + :period #x708 + :length #x14 + ) + (new 'static 'sparticle-group-item + :launcher #xb0e + :fade-after (meters 100.0) + :period #x258 + :length #x5 + :binding #x128 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + ) + :bounds (new 'static 'sphere :w 262144.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2830) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 16 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201200) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :initial-value -973078528 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x45800000 + :random-range #x46000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xc + :flags #x1 + :initial-value -973078528 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value #x435a740e + :random-range #x42da740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1079065794 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2d + :flags #x1 + :initial-value #x3f70a3d7 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #xf0 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value 8 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :random-range #x46c71c72 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2786) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 22 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x41400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -977272832 + :random-range #x46400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x44cccccd + :random-range #x454ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43000000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42000000 + :random-range #x42c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value #x4323d70a + :random-range #x4423d70a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value -1053899970 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1087454402 + :random-range -1087454402 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2d + :flags #x1 + :initial-value #x3f666666 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 30 + :random-range 89 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #xae5 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :random-range #x46aaaaab + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :initial-value #x46000000 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2789) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1081571191 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2788) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 14 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x41400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x4499999a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x47400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43000000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42000000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x1 + :initial-value #x45851eb8 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1077097267 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 60 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2785) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 12 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201200) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x47c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43400000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43000000 + :random-range #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x43000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1072369143 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 54 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2787) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 23 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x41800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value -977272832 + :random-range #x46400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x46400000 + :random-range #x45c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :random-range #x42c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x42800000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value #x43a3d70a + :random-range #x4323d70a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x42a3d70a + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1025870834 + :random-range #x435a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1097751884 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value #x3f2ec33e + :random-range #x3f2ec33e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2d + :flags #x1 + :initial-value #x3f4ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x1fe + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :random-range #x46aaaaab + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :random-range #x46800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 562) + (new 'static 'sparticle-launch-group + :length 36 + :duration #x384 + :linger-duration #x5dc + :flags #x1 + :name "group-sequenceC-dark-splash" + :launcher + (new 'static 'inline-array sparticle-group-item 36 + (new 'static 'sparticle-group-item + :launcher #x127 + :fade-after (meters 100.0) + :period #x258 + :length #x5 + :binding #x128 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x128 + :flags #xc + :binding #x129 + ) + (new 'static 'sparticle-group-item + :launcher #x129 + :fade-after (meters 80.0) + :falloff-to (meters 100.0) + :flags #x4 + ) + (new 'static 'sparticle-group-item + :launcher #x82f + :period #x258 + :length #x5 + ) + (new 'static 'sparticle-group-item + :launcher #x830 + :fade-after (meters 80.0) + :falloff-to (meters 80.0) + :period #x258 + :length #x28 + ) + (new 'static 'sparticle-group-item + :launcher #x831 + :period #x258 + :length #x14 + ) + ) + :bounds (new 'static 'sphere :w 262144.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 681) + (new 'static 'sparticle-launch-group + :length 1 + :duration #x5 + :linger-duration #x384 + :flags #x1 + :name "group-sequenceC-blow-dust" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (new 'static 'sparticle-group-item :launcher #xae6) + ) + :bounds (new 'static 'sphere :w 262144.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2790) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 24 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x43cccccd + :random-range #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-range #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x43000000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x42c00000 + :random-range #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value #x42888889 + :random-range #x415a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x41da740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1f + :flags #x1 + :initial-value -1017482226 + :random-range #x43da740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x20 + :flags #x3 + :initial-value -4 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3ecccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value #x3faec33e + :random-range -1079065794 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2d + :flags #x1 + :initial-value #x3f6b851f + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x12c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value 12 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 15 + :random-range 44 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-value #xb06 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :initial-value #x46a0b60b + :random-range #x43b60b61 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :initial-value -988923676 + :random-range #x452aaaab + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :initial-value #x4499999a + :random-range -989855744 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2822) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1110651699 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; definition of type sequenceB +(deftype sequenceB (process-taskable) + ((bonelurker handle :offset-assert 384) + (evilbro handle :offset-assert 392) + (evilsis handle :offset-assert 400) + (lurker-army handle 9 :offset-assert 408) + ) + :heap-base #x170 + :method-count-assert 53 + :size-assert #x1e0 + :flag-assert #x35017001e0 + ) + +;; definition for method 3 of type sequenceB +(defmethod inspect sequenceB ((obj sequenceB)) + (let ((t9-0 (method-of-type process-taskable inspect))) + (t9-0 obj) + ) + (format #t "~T~Tbonelurker: ~D~%" (-> obj bonelurker)) + (format #t "~T~Tevilbro: ~D~%" (-> obj evilbro)) + (format #t "~T~Tevilsis: ~D~%" (-> obj evilsis)) + (format #t "~T~Tlurker-army[9] @ #x~X~%" (-> obj lurker-army)) + obj + ) + +;; definition of type sequenceC +(deftype sequenceC (process-taskable) + ((bonelurker handle :offset-assert 384) + (darkecocan handle :offset-assert 392) + (darkecocan-glowing-look lod-set :inline :offset-assert 400) + ) + :heap-base #x150 + :method-count-assert 53 + :size-assert #x1b1 + :flag-assert #x35015001b1 + ) + +;; definition for method 3 of type sequenceC +(defmethod inspect sequenceC ((obj sequenceC)) + (let ((t9-0 (method-of-type process-taskable inspect))) + (t9-0 obj) + ) + (format #t "~T~Tbonelurker: ~D~%" (-> obj bonelurker)) + (format #t "~T~Tdarkecocan: ~D~%" (-> obj darkecocan)) + (format + #t + "~T~Tdarkecocan-glowing-look: #~%" + (-> obj darkecocan-glowing-look) + ) + obj + ) + +;; failed to figure out what this is: +(let + ((v1-46 + (new 'static 'skeleton-group + :art-group-name "sidekick-human" + :bounds (new 'static 'vector :w 10240.0) + :version #x6 + :shadow 2 + ) + ) + ) + (set! (-> v1-46 jgeo) 0) + (set! (-> v1-46 janim) 3) + (set! (-> v1-46 mgeo 0) (the-as uint 1)) + (set! (-> v1-46 lod-dist 0) 4095996000.0) + (set! *sidekick-human-sg* v1-46) + ) + +;; failed to figure out what this is: +(let + ((v1-47 + (new 'static 'skeleton-group + :art-group-name "darkecocan" + :bounds (new 'static 'vector :w 4096.0) + :version #x6 + ) + ) + ) + (set! (-> v1-47 jgeo) 0) + (set! (-> v1-47 janim) 4) + (set! (-> v1-47 mgeo 0) (the-as uint 1)) + (set! (-> v1-47 lod-dist 0) 4095996000.0) + (set! *darkecocan-sg* v1-47) + ) + +;; failed to figure out what this is: +(let + ((v1-48 + (new 'static 'skeleton-group + :art-group-name "darkecocan" + :bounds (new 'static 'vector :w 4096.0) + :version #x6 + ) + ) + ) + (set! (-> v1-48 jgeo) 2) + (set! (-> v1-48 janim) 4) + (set! (-> v1-48 mgeo 0) (the-as uint 3)) + (set! (-> v1-48 lod-dist 0) 4095996000.0) + (set! *darkecocan-glow-sg* v1-48) + ) + +;; failed to figure out what this is: +(let + ((v1-49 + (new 'static 'skeleton-group + :art-group-name "evilbro" + :bounds (new 'static 'vector :w 4096.0) + :version #x6 + ) + ) + ) + (set! (-> v1-49 jgeo) 0) + (set! (-> v1-49 janim) 3) + (set! (-> v1-49 mgeo 0) (the-as uint 1)) + (set! (-> v1-49 lod-dist 0) 4095996000.0) + (set! *evilbro-sg* v1-49) + ) + +;; failed to figure out what this is: +(let + ((v1-50 + (new 'static 'skeleton-group + :art-group-name "evilsis" + :bounds (new 'static 'vector :w 4096.0) + :version #x6 + ) + ) + ) + (set! (-> v1-50 jgeo) 0) + (set! (-> v1-50 janim) 3) + (set! (-> v1-50 mgeo 0) (the-as uint 1)) + (set! (-> v1-50 lod-dist 0) 4095996000.0) + (set! *evilsis-sg* v1-50) + ) + +;; definition of type army-info +(deftype army-info (structure) + ((pos vector :offset-assert 0) + (rot float :offset-assert 4) + (start-frame float :offset-assert 8) + (skel symbol :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) + +;; definition for method 3 of type army-info +(defmethod inspect army-info ((obj army-info)) + (format #t "[~8x] ~A~%" obj 'army-info) + (format #t "~Tpos: #~%" (-> obj pos)) + (format #t "~Trot: ~f~%" (-> obj rot)) + (format #t "~Tstart-frame: ~f~%" (-> obj start-frame)) + (format #t "~Tskel: ~A~%" (-> obj skel)) + obj + ) + +;; definition for symbol *lurker-army*, type (array army-info) +(define + *lurker-army* + (the-as (array army-info) + (new + 'static + 'boxed-array + :type army-info :length 9 :allocated-length 9 + (new 'static 'army-info + :pos + (new 'static 'vector :x -920633.4 :y 83546.11 :z 4210409.5) + :rot 28556.04 + :skel 'babak + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -873488.4 :y 86441.984 :z 4225454.0) + :rot 37861.24 + :start-frame 5.0 + :skel 'babak + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -905871.4 :y 83132.414 :z 4231934.0) + :rot 32054.021 + :start-frame 10.0 + :skel 'babak + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -926765.06 :y 83496.96 :z 4236230.5) + :rot 30001.652 + :start-frame 15.0 + :skel 'babak + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -893345.8 :y 83517.44 :z 4212961.5) + :rot 32755.074 + :start-frame 20.0 + :skel 'babak + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -842797.06 :y 84041.73 :z 4218855.5) + :rot 43916.402 + :skel 'bonelurker + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -839274.5 :y 82644.99 :z 4248723.5) + :rot 40510.715 + :start-frame 6.0 + :skel 'bonelurker + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -871485.44 :y 85909.51 :z 4243181.5) + :rot 37046.043 + :start-frame 12.0 + :skel 'bonelurker + ) + (new 'static 'army-info + :pos + (new 'static 'vector :x -947523.56 :y 85835.77 :z 4219314.0) + :rot 26980.078 + :start-frame 18.0 + :skel 'bonelurker + ) + ) + ) + ) + +;; definition for function evilsib-trans-hook-hover +;; INFO: Return type mismatch int vs none. +(defbehavior evilsib-trans-hook-hover evilbro () + 0 + (none) + ) + +;; definition for function evilsib-trans-hook-wait +;; INFO: Return type mismatch int vs none. +(defbehavior evilsib-trans-hook-wait evilbro () + (when (>= (ja-aframe-num 0) 425.0) + (let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-0 + (let ((t9-2 (method-of-type part-tracker activate))) + (t9-2 + (the-as part-tracker gp-0) + *entity-pool* + 'part-tracker + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + gp-0 + part-tracker-init + (-> *part-group-id-table* 557) + -1 + #f + #f + #f + (-> self draw origin) + ) + (-> gp-0 ppointer) + ) + ) + (let ((a1-3 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-3 from) self) + (set! (-> a1-3 num-params) 1) + (set! (-> a1-3 message) 'trans-hook) + (set! (-> a1-3 param 0) (the-as uint evilsib-trans-hook-hover)) + (send-event-function self a1-3) + ) + ) + 0 + (none) + ) + +;; definition for method 32 of type sequenceB +(defmethod play-anim! sequenceB ((obj sequenceB) (arg0 symbol)) + (with-pp + (cond + (arg0 + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) pp) + (set! (-> a1-1 num-params) 1) + (set! (-> a1-1 message) 'sidekick) + (set! (-> a1-1 param 0) (the-as uint #f)) + (send-event-function *target* a1-1) + ) + (let ((s5-0 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> obj bonelurker) (ppointer->handle (when s5-0 + (let + ((t9-2 + (method-of-type + manipy + activate + ) + ) + ) + (t9-2 + (the-as manipy s5-0) + obj + 'manipy + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s5-0 + manipy-init + (-> obj root trans) + (-> obj entity) + *bonelurker-sg* + #f + ) + (-> s5-0 ppointer) + ) + ) + ) + ) + (let ((a1-5 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-5 from) pp) + (set! (-> a1-5 num-params) 1) + (set! (-> a1-5 message) 'anim-mode) + (set! (-> a1-5 param 0) (the-as uint 'clone-anim)) + (send-event-function (handle->process (-> obj bonelurker)) a1-5) + ) + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) pp) + (set! (-> a1-6 num-params) 1) + (set! (-> a1-6 message) 'center-joint) + (set! (-> a1-6 param 0) (the-as uint 3)) + (send-event-function (handle->process (-> obj bonelurker)) a1-6) + ) + (set-setting! + *setting-control* + pp + 'music-volume-movie + 'abs + (the-as float 0.0) + 0 + ) + (set-setting! + *setting-control* + pp + 'sfx-volume-movie + 'abs + (the-as float 0.0) + 0 + ) + (set-setting! + *setting-control* + pp + 'ambient-volume-movie + 'abs + (the-as float 0.0) + 0 + ) + (dotimes (s5-1 9) + (let ((s4-0 (-> *lurker-army* s5-1))) + (cond + ((= (-> s4-0 skel) 'bonelurker) + (let ((s3-0 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> obj lurker-army s5-1) (ppointer->handle (when s3-0 + (let + ((t9-10 + (method-of-type + manipy + activate + ) + ) + ) + (t9-10 + (the-as + manipy + s3-0 + ) + obj + 'manipy + (the-as + pointer + #x70004000 + ) + ) + ) + (run-now-in-process + s3-0 + manipy-init + (-> s4-0 pos) + (-> obj entity) + *bonelurker-sg* + #f + ) + (-> s3-0 ppointer) + ) + ) + ) + ) + (let ((s3-1 (handle->process (-> obj lurker-army s5-1)))) + (when s3-1 + (set! (-> (the-as babak s3-1) draw light-index) (the-as uint 1)) + (set! + (-> (the-as babak s3-1) draw level-index) + (the-as uint (-> (level-get *level* 'misty) index)) + ) + ) + ) + ) + (else + (let ((s3-2 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> obj lurker-army s5-1) (ppointer->handle (when s3-2 + (let + ((t9-14 + (method-of-type + manipy + activate + ) + ) + ) + (t9-14 + (the-as + manipy + s3-2 + ) + obj + 'manipy + (the-as + pointer + #x70004000 + ) + ) + ) + (run-now-in-process + s3-2 + manipy-init + (-> s4-0 pos) + (-> obj entity) + *babak-sg* + #f + ) + (-> s3-2 ppointer) + ) + ) + ) + ) + (let ((s3-3 (handle->process (-> obj lurker-army s5-1)))) + (when s3-3 + (set! (-> (the-as babak s3-3) draw light-index) (the-as uint 1)) + (set! + (-> (the-as babak s3-3) draw level-index) + (the-as uint (-> (level-get *level* 'misty) index)) + ) + ) + ) + (let ((a1-20 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-20 from) pp) + (set! (-> a1-20 num-params) 2) + (set! (-> a1-20 message) 'art-joint-anim) + (set! (-> a1-20 param 0) (the-as uint "idle")) + (set! (-> a1-20 param 1) (the-as uint 0)) + (send-event-function + (handle->process (-> obj lurker-army s5-1)) + a1-20 + ) + ) + ) + ) + (let ((a1-21 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-21 from) pp) + (set! (-> a1-21 num-params) 1) + (set! (-> a1-21 message) 'rot) + (set! (-> a1-21 param 0) (the-as uint (-> s4-0 rot))) + (send-event-function (handle->process (-> obj lurker-army s5-1)) a1-21) + ) + ) + ) + ) + ((!= (level-status *level* 'intro) 'active) + (return (get-art-elem obj)) + ) + ) + (new 'static 'spool-anim + :name "sidekick-human-intro-sequence-b" + :index 5 + :parts 11 + :command-list + '( + (0 + blackout + 0 + ) + (0 + setting-reset + ocean-off + near + ) + (0 + want-levels + misty + intro + ) + (0 + display-level + intro + special + ) + (0 + kill + "money-1404" + ) + (0 + kill + "money-1405" + ) + (0 + kill + "money-1406" + ) + (0 + kill + "money-1407" + ) + (0 + kill + "money-1551" + ) + (0 + kill + "money-1552" + ) + (0 + kill + "money-1553" + ) + (0 + kill + "balloonlurker-9" + ) + (0 + kill + "balloonlurker-10" + ) + (0 + kill + "balloonlurker-11" + ) + (0 + kill + "balloonlurker-12" + ) + (0 + kill + "balloonlurker-13" + ) + (0 + kill + "balloonlurker-14" + ) + (0 + kill + "keg-conveyor-8" + ) + (0 + kill + "mistycannon-8" + ) + (0 + kill + "muse-2" + ) + (0 + kill + "mud-1" + ) + (0 + kill + "mud-2" + ) + (0 + kill + "mud-3" + ) + (0 + kill + "mud-4" + ) + (0 + kill + "mud-5" + ) + (0 + kill + "mud-6" + ) + (0 + kill + "mud-7" + ) + (0 + kill + "mud-8" + ) + (0 + kill + "mud-9" + ) + (0 + kill + "mud-10" + ) + (0 + kill + "mud-11" + ) + (0 + kill + "dark-eco-pool-11" + ) + (0 + kill + "sharkey-32" + ) + (0 + kill + "sharkey-34" + ) + (0 + kill + "sharkey-39" + ) + (0 + kill + "sharkey-41" + ) + (0 + kill + "bonelurker-14" + ) + (0 + kill + "bonelurker-15" + ) + (0 + kill + "bonelurker-16" + ) + (0 + kill + "bonelurker-17" + ) + (0 + kill + "bonelurker-18" + ) + (0 + kill + "bonelurker-19" + ) + (0 + kill + "bonelurker-20" + ) + (0 + kill + "bonelurker-21" + ) + (0 + kill + "bonelurker-22" + ) + (0 + kill + "bonelurker-23" + ) + (0 + kill + "bonelurker-24" + ) + (0 + kill + "bonelurker-26" + ) + (0 + kill + "babak-with-cannon-5" + ) + (0 + kill + "babak-200" + ) + (0 + kill + "babak-201" + ) + (0 + kill + "babak-202" + ) + (0 + kill + "babak-203" + ) + (0 + kill + "babak-204" + ) + (0 + kill + "babak-205" + ) + (0 + kill + "babak-206" + ) + (0 + kill + "babak-207" + ) + (0 + kill + "babak-208" + ) + (0 + kill + "babak-209" + ) + (0 + kill + "babak-212" + ) + (0 + kill + "quicksandlurker-5" + ) + (0 + kill + "boatpaddle-4" + ) + (0 + kill + "silostep-7" + ) + (0 + kill + "silostep-8" + ) + (0 + kill + "silostep-9" + ) + (0 + kill + "silostep-10" + ) + (0 + kill + "orb-cache-top-15" + ) + (0 + kill + "windturbine-11" + ) + (0 + kill + "teetertotter-5" + ) + (0 + kill + "bone-platform-4" + ) + (0 + kill + "misty-battle-controller-1" + ) + ((the binteger 30) + send-event + self + offset-army + ) + ((the binteger 196) + joint + "cameraB" + ) + ((the binteger 196) + shadow + target + #f + ) + ((the binteger 196) + shadow + self + #f + ) + ((the binteger 380) + send-event + self + evilbro + ) + ((the binteger 385) + send-event + "evilbro" + draw + #t + ) + ((the binteger 385) + send-event + "evilsis" + draw + #t + ) + ((the binteger 397) + joint + "camera" + ) + ((the binteger 410) + setting-reset + ocean-off + #t + ) + ((the binteger 456) + joint + "cameraB" + ) + ((the binteger 546) + joint + "camera" + ) + ((the binteger 701) + joint + "cameraB" + ) + ((the binteger 701) + setting-reset + ocean-off + near + ) + ((the binteger 776) + joint + "camera" + ) + ((the binteger 776) + setting-reset + ocean-off + #t + ) + ((the binteger 937) + joint + "cameraB" + ) + ((the binteger 1027) + joint + "camera" + ) + ((the binteger 1122) + joint + "cameraB" + ) + ((the binteger 1221) + joint + "cameraB" + ) + ((the binteger 1221) + setting-reset + ocean-off + near + ) + ((the binteger 1280) + alive + "sequenceC-1" + ) + ((the binteger 1281) + save + ) + ((the binteger 1281) + shadow + target + #t + ) + ((the binteger 1281) setting-unset ocean-off) + ) + ) + ) + ) + +;; definition for method 31 of type sequenceB +(defmethod get-art-elem sequenceB ((obj sequenceB)) + (-> obj draw art-group data 3) + ) + +;; failed to figure out what this is: +(defstate play-anim (sequenceB) + :virtual #t + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (case arg2 + (('offset-army) + (dotimes (gp-0 9) + (let ((v1-3 (-> *lurker-army* gp-0)) + (a1-1 (new 'stack-no-clear 'event-message-block)) + ) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 1) + (set! (-> a1-1 message) 'set-frame-num) + (set! (-> a1-1 param 0) (the-as uint (-> v1-3 start-frame))) + (send-event-function (handle->process (-> self lurker-army gp-0)) a1-1) + ) + ) + #f + ) + (('evilbro) + (when (= (level-status *level* 'intro) 'active) + (let ((gp-2 (entity-by-name "evilbro-2"))) + (when gp-2 + (let ((s5-0 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> self evilbro) (ppointer->handle (when s5-0 + (let + ((t9-4 + (method-of-type + manipy + activate + ) + ) + ) + (t9-4 + (the-as manipy s5-0) + self + 'manipy + (the-as + pointer + #x70004000 + ) + ) + ) + (run-now-in-process + s5-0 + manipy-init + (-> self root trans) + gp-2 + *evilbro-sg* + #f + ) + (-> s5-0 ppointer) + ) + ) + ) + ) + (let ((gp-3 (handle->process (-> self evilbro)))) + (when gp-3 + (set! (-> (the-as evilbro gp-3) draw light-index) (the-as uint 1)) + (set! + (-> (the-as evilbro gp-3) draw level-index) + (the-as uint (-> (level-get *level* 'misty) index)) + ) + ) + ) + (let ((a1-8 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-8 from) self) + (set! (-> a1-8 num-params) 1) + (set! (-> a1-8 message) 'anim-mode) + (set! (-> a1-8 param 0) (the-as uint 'clone-anim)) + (send-event-function (handle->process (-> self evilbro)) a1-8) + ) + (let ((a1-9 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-9 from) self) + (set! (-> a1-9 num-params) 1) + (set! (-> a1-9 message) 'blend-shape) + (set! (-> a1-9 param 0) (the-as uint #t)) + (send-event-function (handle->process (-> self evilbro)) a1-9) + ) + (let ((a1-10 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-10 from) self) + (set! (-> a1-10 num-params) 1) + (set! (-> a1-10 message) 'center-joint) + (set! (-> a1-10 param 0) (the-as uint 3)) + (send-event-function (handle->process (-> self evilbro)) a1-10) + ) + (let ((a1-11 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-11 from) self) + (set! (-> a1-11 num-params) 1) + (set! (-> a1-11 message) 'trans-hook) + (set! (-> a1-11 param 0) (the-as uint evilsib-trans-hook-wait)) + (send-event-function (handle->process (-> self evilbro)) a1-11) + ) + (let ((a1-12 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-12 from) self) + (set! (-> a1-12 num-params) 1) + (set! (-> a1-12 message) 'draw) + (set! (-> a1-12 param 0) (the-as uint #f)) + (send-event-function (handle->process (-> self evilbro)) a1-12) + ) + (let ((a1-13 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-13 from) self) + (set! (-> a1-13 num-params) 1) + (set! (-> a1-13 message) 'eval) + (set! + (-> a1-13 param 0) + (the-as + uint + (lambda :behavior sequenceB + () + (let + ((v0-0 (create-launch-control (-> *part-group-id-table* 558) self)) + ) + (set! (-> self part) v0-0) + v0-0 + ) + ) + ) + ) + (send-event-function (handle->process (-> self evilbro)) a1-13) + ) + ) + ) + (let ((gp-4 (entity-by-name "evilsis-2"))) + (when gp-4 + (let ((s5-1 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> self evilsis) (ppointer->handle (when s5-1 + (let + ((t9-15 + (method-of-type + manipy + activate + ) + ) + ) + (t9-15 + (the-as manipy s5-1) + self + 'manipy + (the-as + pointer + #x70004000 + ) + ) + ) + (run-now-in-process + s5-1 + manipy-init + (-> self root trans) + gp-4 + *evilsis-sg* + #f + ) + (-> s5-1 ppointer) + ) + ) + ) + ) + (let ((gp-5 (handle->process (-> self evilsis)))) + (when gp-5 + (set! (-> (the-as evilsis gp-5) draw light-index) (the-as uint 1)) + (set! + (-> (the-as evilsis gp-5) draw level-index) + (the-as uint (-> (level-get *level* 'misty) index)) + ) + ) + ) + (let ((a1-19 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-19 from) self) + (set! (-> a1-19 num-params) 1) + (set! (-> a1-19 message) 'anim-mode) + (set! (-> a1-19 param 0) (the-as uint 'clone-anim)) + (send-event-function (handle->process (-> self evilsis)) a1-19) + ) + (let ((a1-20 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-20 from) self) + (set! (-> a1-20 num-params) 1) + (set! (-> a1-20 message) 'blend-shape) + (set! (-> a1-20 param 0) (the-as uint #t)) + (send-event-function (handle->process (-> self evilsis)) a1-20) + ) + (let ((a1-21 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-21 from) self) + (set! (-> a1-21 num-params) 1) + (set! (-> a1-21 message) 'center-joint) + (set! (-> a1-21 param 0) (the-as uint 3)) + (send-event-function (handle->process (-> self evilsis)) a1-21) + ) + (let ((a1-22 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-22 from) self) + (set! (-> a1-22 num-params) 1) + (set! (-> a1-22 message) 'trans-hook) + (set! (-> a1-22 param 0) (the-as uint evilsib-trans-hook-wait)) + (send-event-function (handle->process (-> self evilsis)) a1-22) + ) + (let ((a1-23 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-23 from) self) + (set! (-> a1-23 num-params) 1) + (set! (-> a1-23 message) 'draw) + (set! (-> a1-23 param 0) (the-as uint #f)) + (send-event-function (handle->process (-> self evilsis)) a1-23) + ) + (let ((a1-24 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-24 from) self) + (set! (-> a1-24 num-params) 1) + (set! (-> a1-24 message) 'eval) + (set! + (-> a1-24 param 0) + (the-as + uint + (lambda :behavior sequenceB + () + (let + ((v0-0 (create-launch-control (-> *part-group-id-table* 558) self)) + ) + (set! (-> self part) v0-0) + v0-0 + ) + ) + ) + ) + (send-event-function (handle->process (-> self evilsis)) a1-24) + ) + ) + ) + ) + ) + ) + ) + :exit + (behavior () + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 1) + (set! (-> a1-0 message) 'sidekick) + (set! (-> a1-0 param 0) (the-as uint #t)) + (send-event-function *target* a1-0) + ) + (let ((a0-2 (handle->process (-> self bonelurker)))) + (if a0-2 + (deactivate a0-2) + ) + ) + (let ((a0-6 (handle->process (-> self evilbro)))) + (if a0-6 + (deactivate a0-6) + ) + ) + (let ((a0-10 (handle->process (-> self evilsis)))) + (if a0-10 + (deactivate a0-10) + ) + ) + (dotimes (gp-0 9) + (let ((a0-14 (handle->process (-> self lurker-army gp-0)))) + (if a0-14 + (deactivate a0-14) + ) + ) + ) + ((-> (method-of-type process-taskable play-anim) exit)) + (let ((gp-1 (entity-by-name "sequenceC-1"))) + (set-blackout-frames 6000) + (let ((a1-5 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-5 from) self) + (set! (-> a1-5 num-params) 0) + (set! (-> a1-5 message) 'clear-entity) + (send-event-function *camera* a1-5) + ) + (entity-birth-no-kill gp-1) + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) self) + (set! (-> a1-6 num-params) 0) + (set! (-> a1-6 message) 'play-anim) + (send-event-function (if gp-1 + (-> gp-1 extra process) + ) + a1-6 + ) + ) + ) + (none) + ) + :trans + (behavior () + (spool-push + *art-control* + "sidekick-human-intro-sequence-c" + 0 + self + (the-as float -1.0) + ) + ((-> (method-of-type process-taskable play-anim) trans)) + (none) + ) + ) + +;; definition for method 39 of type sequenceB +(defmethod should-display? sequenceB ((obj sequenceB)) + #f + ) + +;; definition for method 11 of type sequenceB +(defmethod copy-defaults! sequenceB ((obj sequenceB) (arg0 res-lump)) + (dummy-40 + obj + arg0 + *sidekick-human-sg* + 3 + 44 + (new 'static 'vector :w 4096.0) + -1 + ) + (set! (-> obj tasks) (get-task-control (game-task intro))) + (set! (-> obj bonelurker) (the-as handle #f)) + (set! (-> obj evilbro) (the-as handle #f)) + (set! (-> obj evilsis) (the-as handle #f)) + (dotimes (v1-2 9) + (set! (-> obj lurker-army v1-2) (the-as handle #f)) + ) + (dummy-42 obj) + (none) + ) + +;; definition for function sequenceC-can-trans-hook-2 +;; INFO: Return type mismatch int vs none. +(defbehavior sequenceC-can-trans-hook-2 sequenceC () + (let ((gp-0 (new 'stack-no-clear 'vector))) + (vector<-cspace! gp-0 (-> self node-list data 4)) + (dummy-11 (-> self part) gp-0) + ) + (when (>= (ja-aframe-num 0) 1590.0) + (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-1 + (let ((t9-4 (method-of-type part-tracker activate))) + (t9-4 + (the-as part-tracker gp-1) + *entity-pool* + 'part-tracker + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + gp-1 + part-tracker-init + (-> *part-group-id-table* 561) + -1 + #f + #f + #f + (-> self draw origin) + ) + (-> gp-1 ppointer) + ) + ) + (let ((a1-5 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-5 from) self) + (set! (-> a1-5 num-params) 1) + (set! (-> a1-5 message) 'trans-hook) + (set! (-> a1-5 param 0) (the-as uint nothing)) + (send-event-function self a1-5) + ) + ) + 0 + (none) + ) + +;; definition for function sequenceC-can-trans-hook +;; INFO: Return type mismatch int vs none. +(defbehavior sequenceC-can-trans-hook sequenceC () + (when (>= (ja-aframe-num 0) 1055.0) + (dummy-11 + (-> self draw) + (&-> (the-as process-taskable (-> self parent 0)) stack 288) + ) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 1) + (set! (-> a1-1 message) 'trans-hook) + (set! (-> a1-1 param 0) (the-as uint sequenceC-can-trans-hook-2)) + (send-event-function self a1-1) + ) + (set-vector! (-> self draw color-emissive) 0.5 0.0 0.0 0.0) + ) + 0 + (none) + ) + +;; definition for method 32 of type sequenceC +;; INFO: Return type mismatch spool-anim vs basic. +(defmethod play-anim! sequenceC ((obj sequenceC) (arg0 symbol)) + (with-pp + (when arg0 + (set-setting! + *setting-control* + pp + 'music-volume-movie + 'abs + (the-as float 0.0) + 0 + ) + (set-setting! + *setting-control* + pp + 'sfx-volume-movie + 'abs + (the-as float 0.0) + 0 + ) + (set-setting! + *setting-control* + pp + 'ambient-volume-movie + 'abs + (the-as float 0.0) + 0 + ) + (let ((s5-0 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> obj bonelurker) (ppointer->handle (when s5-0 + (let + ((t9-4 + (method-of-type + manipy + activate + ) + ) + ) + (t9-4 + (the-as manipy s5-0) + obj + 'manipy + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s5-0 + manipy-init + (-> obj root trans) + (-> obj entity) + *bonelurker-sg* + #f + ) + (-> s5-0 ppointer) + ) + ) + ) + ) + (let ((a1-7 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-7 from) pp) + (set! (-> a1-7 num-params) 1) + (set! (-> a1-7 message) 'anim-mode) + (set! (-> a1-7 param 0) (the-as uint 'clone-anim)) + (send-event-function (handle->process (-> obj bonelurker)) a1-7) + ) + (let ((a1-8 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-8 from) pp) + (set! (-> a1-8 num-params) 1) + (set! (-> a1-8 message) 'center-joint) + (set! (-> a1-8 param 0) (the-as uint 3)) + (send-event-function (handle->process (-> obj bonelurker)) a1-8) + ) + (let ((s5-1 (get-process *default-dead-pool* manipy #x4000))) + (set! (-> obj darkecocan) (ppointer->handle (when s5-1 + (let + ((t9-9 + (method-of-type + manipy + activate + ) + ) + ) + (t9-9 + (the-as manipy s5-1) + obj + 'manipy + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s5-1 + manipy-init + (-> obj root trans) + (-> obj entity) + *darkecocan-sg* + #f + ) + (-> s5-1 ppointer) + ) + ) + ) + ) + (let ((a1-12 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-12 from) pp) + (set! (-> a1-12 num-params) 1) + (set! (-> a1-12 message) 'anim-mode) + (set! (-> a1-12 param 0) (the-as uint 'clone-anim)) + (send-event-function (handle->process (-> obj darkecocan)) a1-12) + ) + (let ((a1-13 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-13 from) pp) + (set! (-> a1-13 num-params) 1) + (set! (-> a1-13 message) 'center-joint) + (set! (-> a1-13 param 0) (the-as uint 3)) + (send-event-function (handle->process (-> obj darkecocan)) a1-13) + ) + (let ((a1-14 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-14 from) pp) + (set! (-> a1-14 num-params) 1) + (set! (-> a1-14 message) 'trans-hook) + (set! (-> a1-14 param 0) (the-as uint sequenceC-can-trans-hook)) + (send-event-function (handle->process (-> obj darkecocan)) a1-14) + ) + (let ((a1-15 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-15 from) pp) + (set! (-> a1-15 num-params) 1) + (set! (-> a1-15 message) 'eval) + (set! + (-> a1-15 param 0) + (the-as + uint + (lambda :behavior sequenceC + () + (let + ((a0-0 (&-> (the-as process-taskable (-> self parent 0)) stack 288)) + (t9-0 (method-of-type lod-set dummy-9)) + ) + *darkecocan-glow-sg* + (-> self draw art-group) + (-> (the-as process-taskable (-> self parent 0)) entity) + (t9-0 (the-as lod-set a0-0)) + ) + (let + ((v0-1 (create-launch-control (-> *part-group-id-table* 560) self))) + (set! (-> self part) v0-1) + v0-1 + ) + ) + ) + ) + (send-event-function (handle->process (-> obj darkecocan)) a1-15) + ) + ) + (the-as + basic + (new 'static 'spool-anim + :name "sidekick-human-intro-sequence-c" + :index 6 + :parts 22 + :command-list + '( + (0 + blackout + 0 + ) + (0 + kill + "fuel-cell-11" + ) + (0 + kill + "fuel-cell-50" + ) + (0 + kill + "money-1561" + ) + (0 + kill + "money-1562" + ) + (0 + kill + "money-1563" + ) + (0 + kill + "money-1564" + ) + (0 + kill + "money-1565" + ) + ((the binteger 5) + alive + "dark-eco-pool-11" + ) + ((the binteger 151) + joint + "cameraB" + ) + ((the binteger 200) + want-levels + misty + village1 + ) + ((the binteger 236) + joint + "camera" + ) + ((the binteger 301) + joint + "cameraB" + ) + ((the binteger 421) + joint + "camera" + ) + ((the binteger 460) + shadow + self + #f + ) + ((the binteger 470) + shadow + self + #t + ) + ((the binteger 496) + joint + "cameraB" + ) + ((the binteger 611) + joint + "camera" + ) + ((the binteger 721) + joint + "cameraB" + ) + ((the binteger 1176) + joint + "camera" + ) + ((the binteger 1271) + joint + "cameraB" + ) + ((the binteger 1331) + joint + "camera" + ) + ((the binteger 1386) + joint + "cameraB" + ) + ((the binteger 1461) + joint + "camera" + ) + ((the binteger 1524) + joint + "cameraB" + ) + ((the binteger 1558) + joint + "camera" + ) + ((the binteger 1602) + joint + "cameraB" + ) + ((the binteger 1628) + joint + "camera" + ) + ((the binteger 1676) + joint + "cameraB" + ) + ((the binteger 1728) + joint + "camera" + ) + ((the binteger 1791) + joint + "cameraB" + ) + ((the binteger 1831) + joint + "camera" + ) + ((the binteger 1942) + joint + "cameraB" + ) + ((the binteger 2000) + display-level + village1 + special + ) + ((the binteger 2028) + joint + "camera" + ) + ((the binteger 2096) + joint + "cameraB" + ) + ((the binteger 2154) + joint + "camera" + ) + ((the binteger 2226) + joint + "cameraB" + ) + ((the binteger 2266) + joint + "camera" + ) + ((the binteger 2307) + joint + "cameraB" + ) + ((the binteger 2431) + joint + "camera" + ) + ((the binteger 2476) + joint + "cameraB" + ) + ((the binteger 2530) + display-level + misty + movie + ) + ((the binteger 2530) + want-force-vis + misty + #t + ) + ((the binteger 2530) + dead + "dark-eco-pool-11" + ) + ((the binteger 2534) + display-level + village1 + display + ) + ((the binteger 2535) + want-vis + vi1 + ) + ((the binteger 2536) + joint + "camera" + ) + ((the binteger 2580) alive "sage-23") ((the binteger 2596) save) + ) + ) + ) + ) + ) + +;; definition for method 31 of type sequenceC +(defmethod get-art-elem sequenceC ((obj sequenceC)) + (-> obj draw art-group data 3) + ) + +;; failed to figure out what this is: +(defstate play-anim (sequenceC) + :virtual #t + :exit + (behavior () + (let ((a0-1 (handle->process (-> self bonelurker)))) + (if a0-1 + (deactivate a0-1) + ) + ) + (let ((a0-5 (handle->process (-> self darkecocan)))) + (if a0-5 + (deactivate a0-5) + ) + ) + ((-> (method-of-type process-taskable play-anim) exit)) + (start 'play (get-continue-by-name *game-info* "village1-intro")) + (none) + ) + :trans + (behavior () + (spool-push + *art-control* + "sage-intro-sequence-d1" + 0 + self + (the-as float -1.0) + ) + ((-> (method-of-type process-taskable play-anim) trans)) + (none) + ) + ) + +;; definition for method 39 of type sequenceC +(defmethod should-display? sequenceC ((obj sequenceC)) + #f + ) + +;; definition for function sequenceC-trans-hook +;; INFO: Return type mismatch int vs none. +(defbehavior sequenceC-trans-hook sequenceC () + (when (>= (ja-aframe-num 0) 1655.0) + (let ((gp-0 (new 'stack-no-clear 'vector))) + (vector<-cspace! gp-0 (-> self node-list data 3)) + (let ((s5-0 (get-process *default-dead-pool* part-tracker #x4000))) + (when s5-0 + (let ((t9-3 (method-of-type part-tracker activate))) + (t9-3 + (the-as part-tracker s5-0) + *entity-pool* + 'part-tracker + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s5-0 + part-tracker-init + (-> *part-group-id-table* 562) + -1 + #f + #f + #f + gp-0 + ) + (-> s5-0 ppointer) + ) + ) + ) + (set! (-> self cur-trans-hook) nothing) + ) + 0 + (none) + ) + +;; definition for method 11 of type sequenceC +(defmethod copy-defaults! sequenceC ((obj sequenceC) (arg0 res-lump)) + (dummy-40 + obj + arg0 + *sidekick-human-sg* + 3 + 44 + (new 'static 'vector :w 4096.0) + -1 + ) + (set! (-> obj tasks) (get-task-control (game-task intro))) + (set! (-> obj bonelurker) (the-as handle #f)) + (set! (-> obj darkecocan) (the-as handle #f)) + (set! (-> obj cur-trans-hook) sequenceC-trans-hook) + (dummy-42 obj) + (none) + ) + + + + diff --git a/test/decompiler/reference/levels/village2/flutflut-bluehut_REF.gc b/test/decompiler/reference/levels/village2/flutflut-bluehut_REF.gc new file mode 100644 index 0000000000..03477dec2e --- /dev/null +++ b/test/decompiler/reference/levels/village2/flutflut-bluehut_REF.gc @@ -0,0 +1,361 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type flutflut-bluehut +(deftype flutflut-bluehut (process-taskable) + () + :heap-base #x110 + :method-count-assert 53 + :size-assert #x17c + :flag-assert #x350110017c + ) + +;; definition for method 3 of type flutflut-bluehut +(defmethod inspect flutflut-bluehut ((obj flutflut-bluehut)) + (let ((t9-0 (method-of-type process-taskable inspect))) + (t9-0 obj) + ) + obj + ) + +;; failed to figure out what this is: +(let + ((v1-1 + (new 'static 'skeleton-group + :art-group-name "flutflut-bluehut" + :bounds (new 'static 'vector :w 13312.0) + :version #x6 + ) + ) + ) + (set! (-> v1-1 jgeo) 0) + (set! (-> v1-1 janim) 2) + (set! (-> v1-1 mgeo 0) (the-as uint 1)) + (set! (-> v1-1 lod-dist 0) 4095996000.0) + (set! *flutflut-bluehut-sg* v1-1) + ) + +;; definition for method 32 of type flutflut-bluehut +;; INFO: Return type mismatch art-element vs basic. +(defmethod play-anim! flutflut-bluehut ((obj flutflut-bluehut) (arg0 symbol)) + (current-status (-> obj tasks)) + (if arg0 + (format + 0 + "ERROR: : ~S playing anim for task status ~S~%" + (-> obj name) + (task-status->string (the-as task-status (current-status (-> obj tasks)))) + ) + ) + (the-as basic (get-art-elem obj)) + ) + +;; definition for method 31 of type flutflut-bluehut +(defmethod get-art-elem flutflut-bluehut ((obj flutflut-bluehut)) + (-> obj draw art-group data 2) + ) + +;; definition for method 39 of type flutflut-bluehut +(defmethod should-display? flutflut-bluehut ((obj flutflut-bluehut)) + (and + (closed? + (-> obj tasks) + (game-task village2-levitator) + (task-status need-introduction) + ) + (task-closed? (game-task beach-flutflut) (task-status need-resolution)) + ) + ) + +;; failed to figure out what this is: +(defstate idle (flutflut-bluehut) + :virtual #t + :trans + (behavior () + (set! (-> self will-talk) #f) + ((-> (method-of-type process-taskable idle) trans)) + (none) + ) + :code + (behavior () + (if (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (get-art-elem self) + ) + (ja-channel-push! 1 15) + ) + (while #t + (let ((v1-6 (-> self skel root-channel 0))) + (set! + (-> v1-6 frame-group) + (the-as art-joint-anim (-> self draw art-group data 2)) + ) + ) + (let* ((f30-0 2.0) + (v1-8 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-9 (the-as number (logior #x3f800000 v1-8))) + ) + (countdown (gp-0 (+ (the int (* f30-0 (+ -1.0 (the-as float v1-9)))) 1)) + (let ((a0-12 (-> self skel root-channel 0))) + (set! (-> a0-12 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-12 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-12 param 1) 1.0) + (set! (-> a0-12 frame-num) 0.0) + (joint-control-channel-group! + a0-12 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-13 (-> self skel root-channel 0))) + (set! + (-> a0-13 param 0) + (the float (+ (-> a0-13 frame-group data 0 length) -1)) + ) + (set! (-> a0-13 param 1) 1.0) + (joint-control-channel-group-eval! + a0-13 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((s5-0 (-> *display* base-frame-counter))) + (while (< (+ (-> *display* base-frame-counter) -150) s5-0) + (suspend) + ) + ) + (let ((a0-15 (-> self skel root-channel 0))) + (set! (-> a0-15 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! (-> a0-15 param 0) 0.0) + (set! (-> a0-15 param 1) 1.0) + (set! + (-> a0-15 frame-num) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (joint-control-channel-group! + a0-15 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 param 0) 0.0) + (set! (-> a0-16 param 1) 1.0) + (joint-control-channel-group-eval! + a0-16 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((s5-1 (-> *display* base-frame-counter))) + (while (< (+ (-> *display* base-frame-counter) -150) s5-1) + (suspend) + ) + ) + ) + ) + (let ((a0-18 (-> self skel root-channel 0))) + (set! + (-> a0-18 frame-group) + (the-as art-joint-anim (-> self draw art-group data 3)) + ) + (set! + (-> a0-18 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 3)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-18 param 1) 1.0) + (set! (-> a0-18 frame-num) 0.0) + (joint-control-channel-group! + a0-18 + (the-as art-joint-anim (-> self draw art-group data 3)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-19 (-> self skel root-channel 0))) + (set! + (-> a0-19 param 0) + (the float (+ (-> a0-19 frame-group data 0 length) -1)) + ) + (set! (-> a0-19 param 1) 1.0) + (joint-control-channel-group-eval! + a0-19 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((v1-100 (-> self skel root-channel 0))) + (set! + (-> v1-100 frame-group) + (the-as art-joint-anim (-> self draw art-group data 4)) + ) + ) + (let* ((f30-1 2.0) + (v1-102 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-103 (the-as number (logior #x3f800000 v1-102))) + ) + (countdown (gp-1 (+ (the int (* f30-1 (+ -1.0 (the-as float v1-103)))) 6)) + (let ((a0-26 (-> self skel root-channel 0))) + (set! (-> a0-26 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-26 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-26 param 1) 1.0) + (set! (-> a0-26 frame-num) 0.0) + (joint-control-channel-group! + a0-26 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-27 (-> self skel root-channel 0))) + (set! + (-> a0-27 param 0) + (the float (+ (-> a0-27 frame-group data 0 length) -1)) + ) + (set! (-> a0-27 param 1) 1.0) + (joint-control-channel-group-eval! + a0-27 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + (let ((a0-29 (-> self skel root-channel 0))) + (set! + (-> a0-29 frame-group) + (the-as art-joint-anim (-> self draw art-group data 3)) + ) + (set! (-> a0-29 param 0) 0.0) + (set! (-> a0-29 param 1) 1.0) + (set! + (-> a0-29 frame-num) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 3)) + data + 0 + length + ) + -1 + ) + ) + ) + (joint-control-channel-group! + a0-29 + (the-as art-joint-anim (-> self draw art-group data 3)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-30 (-> self skel root-channel 0))) + (set! (-> a0-30 param 0) 0.0) + (set! (-> a0-30 param 1) 1.0) + (joint-control-channel-group-eval! + a0-30 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (none) + ) + ) + +;; definition for method 11 of type flutflut-bluehut +(defmethod + copy-defaults! + flutflut-bluehut + ((obj flutflut-bluehut) (arg0 res-lump)) + (dummy-40 + obj + arg0 + *flutflut-bluehut-sg* + 3 + 0 + (new 'static 'vector :w 4096.0) + 27 + ) + (set! (-> obj tasks) (get-task-control (game-task village2-levitator))) + (set! (-> obj draw light-index) (the-as uint 1)) + (dummy-42 obj) + (none) + ) + + + + diff --git a/test/decompiler/reference/levels/village2/sage-bluehut_REF.gc b/test/decompiler/reference/levels/village2/sage-bluehut_REF.gc new file mode 100644 index 0000000000..5c3d0defc1 --- /dev/null +++ b/test/decompiler/reference/levels/village2/sage-bluehut_REF.gc @@ -0,0 +1,628 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type assistant-bluehut +(deftype assistant-bluehut (process-taskable) + ((sound-id sound-id :offset-assert 380) + (jaws uint64 :offset-assert 384) + (sage entity-actor :offset-assert 392) + (im-talking symbol :offset-assert 396) + ) + :heap-base #x120 + :method-count-assert 53 + :size-assert #x190 + :flag-assert #x3501200190 + ) + +;; definition for method 3 of type assistant-bluehut +(defmethod inspect assistant-bluehut ((obj assistant-bluehut)) + (let ((t9-0 (method-of-type process-taskable inspect))) + (t9-0 obj) + ) + (format #t "~T~Tsound-id: ~D~%" (-> obj sound-id)) + (format #t "~T~Tjaws: ~D~%" (-> obj jaws)) + (format #t "~T~Tsage: ~A~%" (-> obj sage)) + (format #t "~T~Tim-talking: ~A~%" (-> obj im-talking)) + obj + ) + +;; definition of type sage-bluehut +(deftype sage-bluehut (process-taskable) + ((reminder-played symbol :offset-assert 380) + (assistant entity-actor :offset-assert 384) + ) + :heap-base #x120 + :method-count-assert 53 + :size-assert #x184 + :flag-assert #x3501200184 + ) + +;; definition for method 3 of type sage-bluehut +(defmethod inspect sage-bluehut ((obj sage-bluehut)) + (let ((t9-0 (method-of-type process-taskable inspect))) + (t9-0 obj) + ) + (format #t "~T~Treminder-played: ~A~%" (-> obj reminder-played)) + (format #t "~T~Tassistant: ~A~%" (-> obj assistant)) + obj + ) + +;; failed to figure out what this is: +(let + ((v1-2 + (new 'static 'skeleton-group + :art-group-name "sage-bluehut" + :bounds (new 'static 'vector :w 10240.0) + :version #x6 + :shadow 2 + ) + ) + ) + (set! (-> v1-2 jgeo) 0) + (set! (-> v1-2 janim) 3) + (set! (-> v1-2 mgeo 0) (the-as uint 1)) + (set! (-> v1-2 lod-dist 0) 4095996000.0) + (set! *sage-bluehut-sg* v1-2) + ) + +;; definition for method 32 of type sage-bluehut +(defmethod play-anim! sage-bluehut ((obj sage-bluehut) (arg0 symbol)) + (with-pp + (set! (-> obj talk-message) (the-as uint 291)) + (case (current-status (-> obj tasks)) + ((2 3) + (if (not arg0) + (set! (-> obj will-talk) #t) + ) + (case (current-task (-> obj tasks)) + ((55) + (when arg0 + (let* ((s5-1 (-> obj tasks)) + (s4-0 (method-of-object s5-1 save-reminder)) + (a1-3 (new 'stack-no-clear 'event-message-block)) + ) + (set! (-> a1-3 from) pp) + (set! (-> a1-3 num-params) 2) + (set! (-> a1-3 message) 'query) + (set! (-> a1-3 param 0) (the-as uint 'pickup)) + (set! (-> a1-3 param 1) (the-as uint 6)) + (s4-0 + s5-1 + (the int (the-as float (send-event-function *target* a1-3))) + 1 + ) + ) + (close-status! (-> obj tasks) (task-status need-introduction)) + (let ((s5-2 (-> obj assistant extra process))) + (when (and s5-2 (should-display? (the-as assistant-bluehut s5-2))) + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) pp) + (set! (-> a1-6 num-params) 1) + (set! (-> a1-6 message) 'clone) + (set! (-> a1-6 param 0) (the-as uint (process->handle obj))) + (send-event-function s5-2 a1-6) + ) + ) + ) + (set! (-> obj draw bounds w) 40960.0) + ) + (new 'static 'spool-anim + :name + "sage-bluehut-introduction-crop-dusting" + :index 8 + :parts 12 + :command-list + '( + ((the binteger 678) + joint + "cameraB" + ) + ((the binteger 1166) + joint + "camera" + ) + ((the binteger 1258) joint "cameraB") + ) + ) + ) + (else + (when arg0 + (close-status! (-> obj tasks) (task-status need-introduction)) + (close-specific-task! + (game-task swamp-tether-1) + (task-status need-introduction) + ) + (close-specific-task! + (game-task swamp-tether-2) + (task-status need-introduction) + ) + (close-specific-task! + (game-task swamp-tether-3) + (task-status need-introduction) + ) + (close-specific-task! + (game-task swamp-tether-4) + (task-status need-introduction) + ) + ) + (new 'static 'spool-anim + :name "sage-bluehut-introduction-prec-arm" + :index 6 + :parts 8 + :command-list + '( + ((the binteger 141) + joint + "cameraB" + ) + ((the binteger 214) + joint + "camera" + ) + ((the binteger 308) + joint + "cameraB" + ) + ((the binteger 686) + joint + "camera" + ) + ((the binteger 786) + joint + "cameraB" + ) + ((the binteger 843) joint "camera") + ) + ) + ) + ) + ) + ((5) + (set! (-> obj skippable) #t) + (if arg0 + (set! (-> obj reminder-played) #t) + ) + (cond + ((zero? (get-reminder (-> obj tasks) 0)) + (new 'static 'spool-anim + :name "sage-bluehut-reminder-1-crop-dusting" + :index 9 + :parts 3 + :command-list '() + ) + ) + (else + (if arg0 + (set! (-> obj draw bounds w) 40960.0) + ) + (new 'static 'spool-anim + :name "sage-bluehut-reminder-1-prec-arm" + :index 7 + :parts 4 + :command-list + '( + ((the binteger 90) + joint + "cameraB" + ) + ((the binteger 259) + joint + "camera" + ) + ((the binteger 352) joint "cameraB") + ) + ) + ) + ) + ) + (else + (if arg0 + (format + 0 + "ERROR: : ~S playing anim for task status ~S~%" + (-> obj name) + (task-status->string + (the-as task-status (current-status (-> obj tasks))) + ) + ) + ) + (get-art-elem obj) + ) + ) + ) + ) + +;; definition for method 45 of type sage-bluehut +;; INFO: Return type mismatch symbol vs none. +(defmethod dummy-45 sage-bluehut ((obj sage-bluehut)) + (cond + ((= (current-status (-> obj tasks)) 1) + ) + ((zero? (current-status (-> obj tasks))) + ) + ((and + (closed? + (-> obj tasks) + (game-task rolling-plants) + (task-status need-reminder) + ) + (= (get-reminder (-> obj tasks) 0) 0) + ) + #t + ) + ((and + (closed? (-> obj tasks) (game-task swamp-arm) (task-status need-reminder)) + (= (get-reminder (-> obj tasks) 0) 1) + ) + #t + ) + ((and + (-> obj reminder-played) + (< 81920.0 (vector-vector-distance (-> obj root trans) (camera-pos))) + ) + #t + ) + (else + ) + ) + (none) + ) + +;; definition for method 31 of type sage-bluehut +(defmethod get-art-elem sage-bluehut ((obj sage-bluehut)) + (cond + ((and + (= (current-task (-> obj tasks)) 55) + (or + (= (current-status (-> obj tasks)) 2) + (= (current-status (-> obj tasks)) 3) + ) + ) + (save-reminder (-> obj tasks) 0 0) + ) + ((and + (= (current-task (-> obj tasks)) 104) + (or + (= (current-status (-> obj tasks)) 2) + (= (current-status (-> obj tasks)) 3) + ) + ) + (save-reminder (-> obj tasks) 1 0) + ) + ((dummy-45 obj) + (set! (-> obj reminder-played) #f) + (cond + ((closed? + (-> obj tasks) + (game-task rolling-plants) + (task-status need-reminder) + ) + (save-reminder (-> obj tasks) 1 0) + ) + ((or + (closed? + (-> obj tasks) + (game-task swamp-arm) + (task-status need-reminder) + ) + (not + (closed? + (-> obj tasks) + (game-task swamp-arm) + (task-status need-introduction) + ) + ) + ) + (save-reminder (-> obj tasks) 0 0) + ) + ((zero? (get-reminder (-> obj tasks) 0)) + (save-reminder (-> obj tasks) 1 0) + ) + (else + (save-reminder (-> obj tasks) 0 0) + ) + ) + ) + ) + (if (zero? (get-reminder (-> obj tasks) 0)) + (-> obj draw art-group data 4) + (-> obj draw art-group data 5) + ) + ) + +;; failed to figure out what this is: +(defstate play-anim (sage-bluehut) + :virtual #t + :exit + (behavior () + (let ((a1-0 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-0 from) self) + (set! (-> a1-0 num-params) 0) + (set! (-> a1-0 message) 'end-mode) + (send-event-function (-> self assistant extra process) a1-0) + ) + (set! (-> self draw bounds w) 10240.0) + ((-> (method-of-type process-taskable play-anim) exit)) + (none) + ) + ) + +;; definition for method 39 of type sage-bluehut +(defmethod should-display? sage-bluehut ((obj sage-bluehut)) + (and + (task-closed? (game-task village2-levitator) (task-status need-introduction)) + (not (sages-kidnapped?)) + ) + ) + +;; definition for method 44 of type sage-bluehut +;; INFO: Return type mismatch basic vs symbol. +(defmethod play-reminder sage-bluehut ((obj sage-bluehut)) + (the-as + symbol + (and + (-> obj will-talk) + *target* + (< -6365184.0 (-> (target-pos 0) z)) + (< (-> (target-pos 0) x) 1612800.0) + ) + ) + ) + +;; definition for method 47 of type sage-bluehut +(defmethod target-above-threshold? sage-bluehut ((obj sage-bluehut)) + (local-vars (v0-1 symbol)) + (if (not (play-reminder obj)) + (return #f) + ) + (let ((gp-1 (-> obj assistant extra process))) + (if (not gp-1) + (return #t) + ) + (target-above-threshold? (the-as assistant-bluehut gp-1)) + (return (not (-> (the-as assistant-bluehut gp-1) im-talking))) + ) + v0-1 + ) + +;; definition for method 43 of type sage-bluehut +(defmethod TODO-RENAME-43 sage-bluehut ((obj sage-bluehut)) + (when + (TODO-RENAME-10 + (-> obj ambient) + (new 'stack-no-clear 'vector) + 9000 + 122880.0 + obj + ) + (let* ((v1-3 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-4 (the-as number (logior #x3f800000 v1-3))) + (f0-2 (+ -1.0 (the-as float v1-4))) + ) + (cond + ((< 0.8 f0-2) + (dummy-11 (-> obj ambient) "SAGELP20" #f (-> obj root trans)) + ) + ((< 0.6 f0-2) + (dummy-11 (-> obj ambient) "SAGELP21" #f (-> obj root trans)) + ) + ((< 0.4 f0-2) + (dummy-11 (-> obj ambient) "SAGELP22" #f (-> obj root trans)) + ) + ((< 0.2 f0-2) + (dummy-11 (-> obj ambient) "SAGELP23" #f (-> obj root trans)) + ) + ((nonzero? (get-task-status (game-task citadel-sage-blue))) + (dummy-11 (-> obj ambient) "SAGELP24" #f (-> obj root trans)) + ) + ) + ) + ) + (none) + ) + +;; failed to figure out what this is: +(defstate idle (sage-bluehut) + :virtual #t + :code + (behavior () + (while #t + (let ((gp-0 (get-art-elem self))) + (cond + ((= gp-0 (-> self draw art-group data 4)) + (if (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + gp-0 + ) + (ja-channel-push! 1 60) + ) + (set! + (-> self skel root-channel 0 frame-group) + (the-as art-joint-anim gp-0) + ) + (let* ((f30-0 3.0) + (v1-15 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-16 (the-as number (logior #x3f800000 v1-15))) + ) + (countdown + (gp-1 (+ (the int (* f30-0 (+ -1.0 (the-as float v1-16)))) 5)) + (TODO-RENAME-43 self) + (let ((a0-5 (-> self skel root-channel 0))) + (set! (-> a0-5 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-5 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-5 param 1) 1.0) + (set! (-> a0-5 frame-num) 0.0) + (joint-control-channel-group! + a0-5 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (if (dummy-45 self) + (go-virtual idle) + ) + (suspend) + (let ((a0-7 (-> self skel root-channel 0))) + (set! + (-> a0-7 param 0) + (the float (+ (-> a0-7 frame-group data 0 length) -1)) + ) + (set! (-> a0-7 param 1) 1.0) + (joint-control-channel-group-eval! + a0-7 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + (ja-channel-push! 1 60) + (let ((a0-10 (-> self skel root-channel 0))) + (set! + (-> a0-10 frame-group) + (the-as art-joint-anim (-> self draw art-group data 3)) + ) + (set! + (-> a0-10 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 3)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-10 param 1) 1.0) + (set! (-> a0-10 frame-num) 0.0) + (joint-control-channel-group! + a0-10 + (the-as art-joint-anim (-> self draw art-group data 3)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (if (dummy-45 self) + (go-virtual idle) + ) + (suspend) + (let ((a0-12 (-> self skel root-channel 0))) + (set! + (-> a0-12 param 0) + (the float (+ (-> a0-12 frame-group data 0 length) -1)) + ) + (set! (-> a0-12 param 1) 1.0) + (joint-control-channel-group-eval! + a0-12 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (else + (TODO-RENAME-43 self) + (if (!= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + gp-0 + ) + (ja-channel-push! 1 60) + ) + (set! + (-> self skel root-channel 0 frame-group) + (the-as art-joint-anim gp-0) + ) + (let ((a0-16 (-> self skel root-channel 0))) + (set! (-> a0-16 frame-group) (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + ) + (set! + (-> a0-16 param 0) + (the float (+ (-> (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-16 param 1) 1.0) + (set! (-> a0-16 frame-num) 0.0) + (joint-control-channel-group! + a0-16 + (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + num-func-seek! + ) + ) + (until (ja-done? 0) + (if (dummy-45 self) + (go-virtual idle) + ) + (suspend) + (let ((a0-18 (-> self skel root-channel 0))) + (set! + (-> a0-18 param 0) + (the float (+ (-> a0-18 frame-group data 0 length) -1)) + ) + (set! (-> a0-18 param 1) 1.0) + (joint-control-channel-group-eval! + a0-18 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + ) + ) + ) + (none) + ) + ) + +;; definition for method 11 of type sage-bluehut +(defmethod copy-defaults! sage-bluehut ((obj sage-bluehut) (arg0 res-lump)) + (dummy-40 obj arg0 *sage-bluehut-sg* 3 40 (new 'static 'vector :w 4505.6) 5) + (set! (-> obj tasks) (get-task-control (game-task rolling-plants))) + (set! (-> obj reminder-played) #f) + (set! (-> obj assistant) (entity-actor-lookup arg0 'alt-actor 0)) + (set! (-> obj draw light-index) (the-as uint 1)) + (set! (-> obj sound-flava) (the-as uint 5)) + (dummy-42 obj) + (none) + ) + + + + diff --git a/test/decompiler/reference/levels/village2/sunken-elevator_REF.gc b/test/decompiler/reference/levels/village2/sunken-elevator_REF.gc index 34ebecc623..ee7747b9bf 100644 --- a/test/decompiler/reference/levels/village2/sunken-elevator_REF.gc +++ b/test/decompiler/reference/levels/village2/sunken-elevator_REF.gc @@ -244,7 +244,8 @@ ) ;; definition for method 29 of type sunken-elevator -(defmethod TODO-RENAME-29 sunken-elevator ((obj sunken-elevator)) +;; INFO: Return type mismatch float vs symbol. +(defmethod can-target-move? sunken-elevator ((obj sunken-elevator)) (set! (-> obj play-at-top-going-up-camera?) #f) (let ((s5-0 (new 'stack-no-clear 'vector))) (eval-path-curve! (-> obj path) s5-0 0.4 'interp) @@ -252,7 +253,7 @@ (eval-path-curve! (-> obj path) s5-0 0.6 'interp) (let ((f0-1 (-> s5-0 y))) (set! (-> obj teleport-if-below-y) f0-1) - f0-1 + (the-as symbol f0-1) ) ) ) @@ -261,7 +262,7 @@ (defmethod TODO-RENAME-27 sunken-elevator ((obj sunken-elevator)) (ja-channel-set! 1) (cond - (((method-of-object obj dummy-26)) + ((can-activate? obj) (let ((s5-0 (-> obj skel root-channel 0))) (joint-control-channel-group-eval! s5-0