From 1c7c2132ebfa7be74cb3d0c43a006b543b40fe4d Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Tue, 31 Aug 2021 21:36:19 -0400 Subject: [PATCH] decomp: `weather-part` (#798) * stash * decomp: finish what is currently possible in `time-of-day` * need to know how sp-field-init-spec's functions are called * solved some issues, but going to be blocked by the sparticle-group-item * decompiler: Add support for `sparticle-launch-group` from static data * decomp: finish `weather-part` --- decompiler/config/all-types.gc | 78 +- .../anonymous_function_types.jsonc | 5 + .../stack_structures.jsonc | 18 + .../jak1_ntsc_black_label/type_casts.jsonc | 21 + decompiler/util/data_decompile.cpp | 17 + goal_src/engine/ambient/weather-part.gc | 2562 ++++++++++++++++ goal_src/engine/camera/cam-interface-h.gc | 5 +- goal_src/engine/camera/camera-h.gc | 2 +- goal_src/engine/game/game-save.gc | 152 +- goal_src/engine/gfx/time-of-day-h.gc | 15 +- goal_src/engine/sparticle/sparticle-h.gc | 18 +- .../engine/sparticle/sparticle-launcher-h.gc | 4 +- .../engine/sparticle/sparticle-launcher.gc | 3 + goal_src/engine/sparticle/sparticle.gc | 5 +- .../engine/ambient/weather-part_REF.gc | 2569 +++++++++++++++++ .../reference/engine/camera/camera-h_REF.gc | 110 +- .../engine/gfx/sparticle/sparticle-h_REF.gc | 28 +- .../gfx/sparticle/sparticle-launcher-h_REF.gc | 16 +- .../reference/engine/gfx/time-of-day-h_REF.gc | 42 +- 19 files changed, 5440 insertions(+), 230 deletions(-) create mode 100644 test/decompiler/reference/engine/ambient/weather-part_REF.gc diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index baba6c8a2e..05f2b2e35d 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -7387,11 +7387,12 @@ :size-assert #x110 :flag-assert #xb00000110 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) + (reset! (_type_) symbol 9) + (TODO-RENAME-10 (_type_ int float float vector) object 10) ; returns float or error string ) ) +(declare-type sparticle-launch-control basic) (deftype time-of-day-proc (process) ((year int32 :offset-assert 112) (month int32 :offset-assert 116) @@ -7404,13 +7405,13 @@ (time-of-day float :offset-assert 144) (time-ratio float :offset-assert 148) (star-count int32 :offset-assert 152) - (stars basic :offset-assert 156) + (stars sparticle-launch-control :offset-assert 156) (sun-count int32 :offset-assert 160) - (sun basic :offset-assert 164) + (sun sparticle-launch-control :offset-assert 164) (green-sun-count int32 :offset-assert 168) - (green-sun basic :offset-assert 172) + (green-sun sparticle-launch-control :offset-assert 172) (moon-count int32 :offset-assert 176) - (moon basic :offset-assert 180) + (moon sparticle-launch-control :offset-assert 180) ) :heap-base #x50 :method-count-assert 14 @@ -7449,7 +7450,7 @@ (light-masks-0 uint8 2 :offset-assert 2096) (light-masks-1 uint8 2 :offset-assert 2098) (light-interp uint32 2 :offset-assert 2100) - (sky basic :offset-assert 2108) + (sky symbol :offset-assert 2108) (sun-fade float :offset-assert 2112) (title-updated symbol :offset-assert 2116) ) @@ -13377,7 +13378,7 @@ (initial-valuef float :offset 4) ;; TODO - floats suck - some of these values end up being NaN - these should come before the int32 fields (random-rangef float :offset 8) ;; TODO - floats suck - some of these values end up being NaN - these should come before the int32 fields (random-multf float :offset 12) ;; TODO - floats suck - some of these values end up being NaN - these should come before the int32 fields - (func basic :offset 4) + (func symbol :offset 4) (tex uint32 :offset 4) (pntr uint32 :offset 4) (sym basic :offset 4) @@ -13441,7 +13442,7 @@ (linger-duration uint16 :offset-assert 8) (flags uint16 :offset-assert 10) (name basic :offset-assert 12) - (launcher sparticle-group-item :offset-assert 16) + (launcher (inline-array sparticle-group-item) :offset-assert 16) (bounds sphere :inline :offset-assert 32) ) :method-count-assert 10 @@ -13507,7 +13508,7 @@ (flags uint32 :offset-assert 104) (user-int32 int32 :offset-assert 108) (user-uint32 uint32 :offset 108) - (user-float float :offset 108) + (user-float float :score 100 :offset 108) (user-pntr uint32 :offset 108) (user-sprite sprite-vec-data-2d :offset 108) (func basic :offset-assert 112) @@ -13540,13 +13541,13 @@ ) (deftype sparticle-system (basic) - ((blocks uint32 2 :offset-assert 4) + ((blocks int32 2 :offset-assert 4) (length uint32 2 :offset-assert 12) (num-alloc uint32 2 :offset-assert 20) (is-3d basic :offset-assert 28) (flags uint32 :offset-assert 32) (alloc-table uint32 :offset-assert 36) - (cpuinfo-table uint32 :offset-assert 40) + (cpuinfo-table sparticle-cpuinfo :offset-assert 40) (vecdata-table uint32 :offset-assert 44) (adgifdata-table uint32 :offset-assert 48) ) @@ -13893,7 +13894,7 @@ (outro-t-step float :offset-assert 2376) (outro-exit-value float :offset-assert 2380) (water-drip-time uint64 :offset-assert 2384) - (water-drip basic :offset-assert 2392) + (water-drip sparticle-launch-control :offset-assert 2392) (water-drip-mult float :offset-assert 2396) (water-drip-speed float :offset-assert 2400) ) @@ -16344,7 +16345,7 @@ ;; - Unknowns ;;(define-extern *global-toggle* object) ;; unknown type -(define-extern *part-id-table* (array sparticle-launcher)) ;; unknown type +(define-extern *part-id-table* (array sparticle-launcher)) ;;(define-extern *particle-300hz-timer* object) ;; unknown type ;;(define-extern *sp-launch-queue* object) ;; unknown type ;;(define-extern *death-adgif* object) ;; unknown type @@ -16371,9 +16372,9 @@ (define-extern forall-particles function) (define-extern sparticle-kill-it-level0 function) (define-extern sparticle-kill-it-level1 function) -(define-extern forall-particles-with-key function) -(define-extern sparticle-kill-it function) -(define-extern forall-particles-with-key-runner function) +(define-extern forall-particles-with-key (function sparticle-launch-control function symbol symbol none)) +(define-extern sparticle-kill-it (function sparticle-system sparticle-cpuinfo none)) +(define-extern forall-particles-with-key-runner (function sparticle-launch-control function sparticle-system none)) ;; TODO - not complete! (define-extern sp-get-approx-alloc-size function) (define-extern sp-process-block function) (define-extern sp-copy-to-spr function) @@ -16383,7 +16384,7 @@ (define-extern sp-free-particle function) (define-extern sp-particle-copy! function) (define-extern sp-get-block-size function) -(define-extern sp-kill-particle (function process sparticle-cpuinfo none)) ;; TODO - not confirmed +(define-extern sp-kill-particle (function sparticle-system sparticle-cpuinfo none)) (define-extern sp-orbiter function) (define-extern memcpy function) (define-extern kill-all-particles-in-level (function int)) @@ -16393,7 +16394,7 @@ ;; - Unknowns ;;(define-extern *particles-flag* object) ;; unknown type -(define-extern *sp-particle-system-2d* sparticle-system) ;; unknown type +(define-extern *sp-particle-system-2d* sparticle-system) (define-extern *sp-particle-system-3d* sparticle-system) ;; unknown type @@ -17205,15 +17206,15 @@ ;; - Functions (define-extern matrix-local->world (function symbol symbol matrix)) -(define-extern update-snow function) -(define-extern check-drop-level-rain function) -(define-extern update-rain function) -(define-extern cam-master-effect function) -(define-extern sparticle-track-sun function) +(define-extern update-snow (function target none)) +(define-extern check-drop-level-rain (function int sparticle-cpuinfo vector none)) ;; second arg is a guess, it's passed as `a1` to `sp-kill-particle` +(define-extern update-rain (function target none)) +(define-extern cam-master-effect (function none :behavior camera-master)) +(define-extern sparticle-track-sun (function int sparticle-cpuinfo matrix none)) ;; TODO - unused / first arg is unknown / matrix is probably wrong -;; - Unknowns +;; - Symbols -(define-extern group-rain-screend-drop sparticle-launch-group) ;; not confirmed +(define-extern group-rain-screend-drop sparticle-launch-group) ;; ---------------------- @@ -17225,20 +17226,23 @@ ;; - Functions (define-extern make-sky-textures function) -(define-extern init-time-of-day function) -(define-extern update-sky-tng-data function) -(define-extern time-of-day-update function) +(define-extern init-time-of-day (function none)) +(define-extern update-sky-tng-data (function float none)) +(define-extern time-of-day-update (function none)) (define-extern start-time-of-day (function int)) -(define-extern time-of-day-setup (function symbol none)) ;; not confirmed -(define-extern set-time-of-day function) -(define-extern init-time-of-day-context (function time-of-day-context none)) +(define-extern time-of-day-setup (function symbol none)) +(define-extern set-time-of-day (function float none)) +(define-extern init-time-of-day-context (function time-of-day-context float)) (define-extern update-time-of-day (function time-of-day-context none)) +;; - Symbols + +(define-extern time-of-day-tick state) +(define-extern time-of-day-effect (function none)) ;; only 'nothing' is stored here, looks like dead code + ;; - Unknowns ;;(define-extern sky-base-polygons object) ;; unknown type -;;(define-extern time-of-day-tick object) ;; unknown type -;;(define-extern time-of-day-effect object) ;; unknown type ;; ---------------------- @@ -17290,8 +17294,8 @@ ;; - Functions (define-extern sky-add-frame-data function) -(define-extern sky-make-sun-data function) -(define-extern sky-make-moon-data function) +(define-extern sky-make-sun-data (function sky-parms int float none)) +(define-extern sky-make-moon-data (function sky-parms float none)) (define-extern sky-make-light function) (define-extern sky-init-upload-data function) (define-extern sky-upload function) @@ -17329,7 +17333,7 @@ ;; - Unknowns ;;(define-extern *sky-work* object) ;; unknown type -;;(define-extern *sky-tng-data* object) ;; unknown type +(define-extern *sky-tng-data* sky-tng-data) ;; unknown type ;;(define-extern sky-roof-polygons object) ;; unknown type ;;(define-extern sky-cloud-polygons object) ;; unknown type ;;(define-extern sky-cloud-polygon-indices object) ;; unknown type 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 98d6e8b63d..1b1c2d9c4f 100644 --- a/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc @@ -675,6 +675,11 @@ "miners": [ [1, "(function none :behavior minershort)"] ], + + "time-of-day": [ + [10, "(function none)"], + [12, "(function sparticle-system sparticle-cpuinfo int none)"] + ], "basebutton": [ [1, "(function symbol :behavior target)"] diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index 0f114cc99e..783c1bb77c 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -1177,6 +1177,24 @@ "(code done auto-save)": [ [16, "event-message-block"] ], + + "update-time-of-day": [ + [16, "(array float)"] // TODO - broken! + ], + + "check-drop-level-rain": [ + [16, "vector"] + ], + + "update-rain": [ + [16, "vector"], + [32, "vector"], + [48, "event-message-block"] + ], + + "sparticle-track-sun": [ + [16, "vector"] + ], "draw-joint-spheres": [[16, "vector"]], "(method 16 process-drawable)": [[16, "matrix"], [80, "matrix"], [144, "vector"], [160, "vector"]], diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 83026d1b06..46ae037f25 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -2541,5 +2541,26 @@ [79, "v1", "int"] ], + "time-of-day-update": [ + [[0, 999], "s6", "time-of-day-proc"] + ], + + "(anon-function 10 time-of-day)": [ + [[0, 999], "s6", "time-of-day-proc"] + ], + + "init-time-of-day": [ + [[0, 999], "s6", "time-of-day-proc"], + [[51, 54], "t9", "(function object object object)"] + ], + + "start-time-of-day": [ + [[20, 23], "t9", "(function process function object)"] + ], + + "cam-master-effect": [ + [[0, 999], "s6", "camera-master"] + ], + "placeholder-do-not-add-below": [] } diff --git a/decompiler/util/data_decompile.cpp b/decompiler/util/data_decompile.cpp index fd4e1c7af8..05a1492420 100644 --- a/decompiler/util/data_decompile.cpp +++ b/decompiler/util/data_decompile.cpp @@ -447,6 +447,19 @@ goos::Object sp_field_init_spec_decompile(const std::vector& words, TypeSpec("sp-field-init-spec"), 16); } +goos::Object sp_launch_grp_launcher_decompile(const std::vector& words, + const std::vector& labels, + int my_seg, + int field_location, + const TypeSystem& ts, + const Field& data_field, + const std::vector>& all_words, + const LinkedObjectFile* file) { + return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, + data_field, all_words, file, + TypeSpec("sparticle-group-item"), 32); +} + } // namespace goos::Object decompile_structure(const TypeSpec& type, @@ -634,6 +647,10 @@ goos::Object decompile_structure(const TypeSpec& type, field_defs_out.emplace_back( field.name(), sp_field_init_spec_decompile(obj_words, labels, label.target_segment, field_start, ts, field, words, file)); + } else if (field.name() == "launcher" && type.print() == "sparticle-launch-group") { + field_defs_out.emplace_back(field.name(), sp_launch_grp_launcher_decompile( + obj_words, labels, label.target_segment, + field_start, ts, field, words, file)); } else { if (obj_words.at(field_start / 4).kind != LinkedWord::PLAIN_DATA) { continue; diff --git a/goal_src/engine/ambient/weather-part.gc b/goal_src/engine/ambient/weather-part.gc index f83d82395e..880a8d521a 100644 --- a/goal_src/engine/ambient/weather-part.gc +++ b/goal_src/engine/ambient/weather-part.gc @@ -5,3 +5,2565 @@ ;; name in dgo: weather-part ;; dgos: GAME, ENGINE +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 188) + (new 'static 'sparticle-launch-group + :length 66 + :duration #xbb8 + :linger-duration #x5dc + :flags #x4 + :name "group-rain-screend-drop-real" + :launcher + (new 'static 'inline-array sparticle-group-item 66 + (new 'static 'sparticle-group-item :launcher #x12 :binding #x13) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x15 :binding #x16) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + ) + :bounds (new 'static 'sphere :w 65536.0) + ) + ) + +;; definition for symbol group-rain-screend-drop, type sparticle-launch-group +(define group-rain-screend-drop (-> *part-group-id-table* 188)) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 21) + (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 #xa + :flags #x1 + :initial-value -963641344 + :random-range #x47100000 + :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 #xd + :flags #x1 + :initial-value #x46200000 + :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-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-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x442aaaab + :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 -1085485875 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 10 + :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* 22) + (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 #x200900) + (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 #x45c00000 + :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-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 #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x43088889 + :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 -1085485875 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1070677186 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x10e + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 15 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 24) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 24) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 4 + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x41888889 + :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 -1115125623 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 23) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 14 + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xe + :initial-value 12 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x45800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x454ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x454ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x21 + :flags #x1 + :initial-value #x40c22e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value #x42888889 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x23 + :flags #x1 + :initial-value #x40422e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1070677186 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x10e + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x100 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 30 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 25) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 25) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value -1063004405 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 18) + (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 #xa + :flags #x1 + :initial-value -963641344 + :random-range #x47100000 + :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 #xd + :flags #x1 + :initial-value #x46800000 + :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-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-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x44888889 + :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 -1085485875 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 10 + :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* 19) + (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 #x200900) + (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 #x46266666 + :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-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 #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x43888889 + :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 -1085485875 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1070677186 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x10e + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 15 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 26) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 26) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 4 + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x42088889 + :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 -1115125623 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 20) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 14 + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xe + :initial-value 24 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x46400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x45cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x45cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x21 + :flags #x1 + :initial-value #x41422e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value #x43088889 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x23 + :flags #x1 + :initial-value #x40c22e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1070677186 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x10e + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x100 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 30 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 27) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 27) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value -1054615797 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 34) + (new 'static 'sparticle-launch-group + :length 3 + :duration #xbb8 + :linger-duration #x5dc + :flags #x2 + :name "group-stars" + :launcher + (new 'static 'inline-array sparticle-group-item 3 + (new 'static 'sparticle-group-item :launcher #x1c) + (new 'static 'sparticle-group-item :launcher #x1d) + (new 'static 'sparticle-group-item :launcher #x1e) + ) + :bounds (new 'static 'sphere :w 32768.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 28) + (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 #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 #x48200000 + :random-range #x48200000 + :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 #x43800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3eda740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 60 + :random-range #xef + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 31) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :initial-value -964876334 + :random-range #x46fd27d2 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x48800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :initial-value #x4b9c4000 + :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* 31) + (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 #x1c9c254 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 32) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 32) + (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 -1092979698 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 29) + (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 #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 #x48200000 + :random-range #x48200000 + :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 #x43800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3eda740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 60 + :random-range #xef + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 31) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :initial-value #x45aaaaab + :random-range #x4627d27d + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x49000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :initial-value #x4b9c4000 + :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* 30) + (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 #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 #x48200000 + :random-range #x48200000 + :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-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-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3eda740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 60 + :random-range #xef + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 31) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :initial-value #x462aaaab + :random-range #x45a4fa50 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x49800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :initial-value #x4b9c4000 + :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* 33) + (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 #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x40800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :initial-value #x47200000 + :random-range #x47200000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x46000000 + :random-range #x47600000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x444ccccd + :random-range #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #xe :initial-value 4 :random-mult 1) + (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 #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x437f0000 + :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 -1037838582 + :random-range -1051036658 + :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 #x3f5a740e + :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 #x5004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 75 + :random-range 74 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 35) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 34) + (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 #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x47a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x444ccccd + :random-range #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #xe :initial-value 4 :random-mult 1) + (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 #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x437f0000 + :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 -1037838582 + :random-range -1051036658 + :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 #x3f5a740e + :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 #x5004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 75 + :random-range 74 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 35) + (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* 35) + (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 #x4b0 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 36) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 36) + (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 -1084591090 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; definition for function update-snow +;; INFO: Return type mismatch int vs none. +(defun update-snow ((arg0 target)) + (let ((gp-0 (-> arg0 control trans))) + (let + ((f0-0 + (lerp-scale + 0.0 + 1.0 + (vector-length (-> arg0 control transv)) + 2048.0 + 40960.0 + ) + ) + ) + (set! + (-> *part-id-table* 34 init-specs 1 initial-value) + (the-as int (- 1.0 f0-0)) + ) + (set! + (-> *part-id-table* 33 init-specs 1 initial-value) + (the-as int (* 4.0 f0-0)) + ) + ) + (set! + (-> *part-id-table* 33 init-specs 19 initial-value) + (the-as int (+ 32768.0 (vector-y-angle (-> arg0 control transv)))) + ) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 34) + gp-0 + #f + #f + 1.0 + ) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 33) + gp-0 + #f + #f + 1.0 + ) + ) + 0 + (none) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 37) + (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 #x200400) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3fc00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x47a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x42f5c28f + :random-range #x42f5c28f + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42480000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x42a00000 + :random-range #x425c0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42480000 + :random-range #x42480000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value -1014462327 + :random-range -1006073719 + :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 #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'check-drop-level-rain + ) + (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* 38) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 15 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200400) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x40900000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x47a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x42f5c28f + :random-range #x42f5c28f + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42480000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x42a00000 + :random-range #x425c0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42480000 + :random-range #x42480000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value -1014462327 + :random-range -1022850935 + :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 #x4004 + :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* 39) + (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 #x200900) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x2 + :random-range 1 + :random-mult #x40000000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x434ccccd + :random-range #x4399999a + :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 #x42dc0000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :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 #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value #x41da740e + :random-range #x425a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1084591090 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1070677186 + :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 #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :initial-value #x458e38e4 + :random-range #x45e38e39 + :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* 40) + (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 #x201e00) + (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 #x42a3d70a + :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 #xf + :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 #x42dc0000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42c00000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x41da740e + :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 -1093874483 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x78 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :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) + ) + ) + ) + +;; definition for function check-drop-level-rain +(defun check-drop-level-rain ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 vector)) + (when (< (-> arg2 y) (-> arg1 user-float)) + (let ((gp-0 (new 'stack-no-clear 'vector))) + (sp-kill-particle (the-as sparticle-system arg0) arg1) + (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 39) + gp-0 + #f + #f + 1.0 + ) + (sp-launch-particles-var + *sp-particle-system-3d* + (-> *part-id-table* 40) + gp-0 + #f + #f + 1.0 + ) + ) + ) + (none) + ) + +;; definition for function update-rain +;; INFO: Return type mismatch int vs none. +(defun update-rain ((arg0 target)) + (with-pp + (let ((a2-0 (new 'stack-no-clear 'vector))) + (set! (-> a2-0 x) (-> arg0 control transv x)) + (set! (-> a2-0 y) 0.0) + (set! (-> a2-0 z) (-> arg0 control transv z)) + (set! (-> a2-0 w) 1.0) + (let + ((gp-0 + (vector+float*! + (new 'stack-no-clear 'vector) + (-> arg0 control trans) + a2-0 + 0.0 + ) + ) + ) + (let* ((s5-0 (matrix-local->world #f #f)) + (f28-0 + (lerp-scale 122.88 245.76 (fabs (-> s5-0 vector 2 y)) 0.0 0.7) + ) + (f30-0 + (lerp-scale 2048.0 245.76 (fabs (-> s5-0 vector 2 y)) 0.0 0.7) + ) + ) + (let ((f26-0 (lerp-scale 0.0 0.1 (-> s5-0 vector 2 y) 0.3 0.7)) + (f0-10 (lerp-scale 1.0 0.1 (-> s5-0 vector 2 y) 0.3 0.7)) + ) + (when (< 0.0 f26-0) + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) pp) + (set! (-> a1-6 num-params) 2) + (set! (-> a1-6 message) 'part-water-drip) + (set! (-> a1-6 param 0) (the-as uint f26-0)) + (set! (-> a1-6 param 1) (the-as uint f0-10)) + (send-event-function *camera* a1-6) + ) + ) + ) + (set! + (-> *part-id-table* 37 init-specs 4 initial-value) + (the-as int f28-0) + ) + (set! + (-> *part-id-table* 37 init-specs 4 random-range) + (the-as int f28-0) + ) + (set! + (-> *part-id-table* 38 init-specs 4 initial-value) + (the-as int f28-0) + ) + (set! + (-> *part-id-table* 38 init-specs 4 random-range) + (the-as int f28-0) + ) + (set! + (-> *part-id-table* 37 init-specs 5 initial-value) + (the-as int f30-0) + ) + (set! + (-> *part-id-table* 37 init-specs 5 random-range) + (the-as int f30-0) + ) + (set! + (-> *part-id-table* 38 init-specs 5 initial-value) + (the-as int f30-0) + ) + (set! + (-> *part-id-table* 38 init-specs 5 random-range) + (the-as int f30-0) + ) + ) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 37) + gp-0 + #f + #f + 1.0 + ) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 38) + gp-0 + #f + #f + 1.0 + ) + ) + ) + 0 + (none) + ) + ) + +;; definition for function cam-master-effect +;; INFO: Return type mismatch int vs none. +(defbehavior cam-master-effect camera-master () + (when + (< + (+ (-> *display* base-frame-counter) -3000) + (the-as int (-> self water-drip-time)) + ) + (set! + (-> *part-id-table* 21 init-specs 1 initial-value) + (the-as int (-> self water-drip-mult)) + ) + (set! + (-> *part-id-table* 18 init-specs 1 initial-value) + (the-as int (* 0.9 (-> self water-drip-mult))) + ) + (set! + (-> *part-id-table* 22 init-specs 11 initial-value) + (the-as int (* -2.7306666 (-> self water-drip-speed))) + ) + (set! + (-> *part-id-table* 23 init-specs 8 initial-value) + (the-as int (* -2.7306666 (-> self water-drip-speed))) + ) + (set! + (-> *part-id-table* 19 init-specs 11 initial-value) + (the-as int (* -2.7306666 (-> self water-drip-speed))) + ) + (set! + (-> *part-id-table* 20 init-specs 8 initial-value) + (the-as int (* -2.7306666 (-> self water-drip-speed))) + ) + (dummy-11 (-> self water-drip) *zero-vector*) + ) + 0 + (none) + ) + +;; definition for function sparticle-track-sun +;; INFO: Return type mismatch int vs none. +(defun sparticle-track-sun ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 matrix)) + (-> arg1 key) + (let ((s5-0 (the int (-> arg1 user-float)))) + (let* ((a1-1 (math-camera-pos)) + (a2-1 (-> *sky-parms* upload-data sun (/ s5-0 4))) + (v1-3 + (vector+float*! + (new 'stack-no-clear 'vector) + a1-1 + (the-as vector a2-1) + 4096.0 + ) + ) + ) + (set! (-> arg2 vector 0 x) (-> v1-3 x)) + (set! (-> arg2 vector 0 y) (-> v1-3 y)) + (set! (-> arg2 vector 0 z) (-> v1-3 z)) + ) + (if (!= (-> arg2 vector 2 w) 0.0) + (set! (-> arg2 vector 2 w) (* 128.0 (-> *time-of-day-context* sun-fade))) + ) + (cond + ((zero? s5-0) + (set! + (-> arg2 vector 2 x) + (-> *time-of-day-context* current-sun sun-color x) + ) + (set! + (-> arg2 vector 2 y) + (-> *time-of-day-context* current-sun sun-color y) + ) + (set! + (-> arg2 vector 2 z) + (-> *time-of-day-context* current-sun sun-color z) + ) + ) + ((or (= s5-0 1) (= s5-0 2)) + (set! + (-> arg2 vector 2 x) + (* 0.25 (-> *time-of-day-context* current-sun sun-color x)) + ) + (set! + (-> arg2 vector 2 y) + (* 0.25 (-> *time-of-day-context* current-sun sun-color y)) + ) + (set! + (-> arg2 vector 2 z) + (* 0.25 (-> *time-of-day-context* current-sun sun-color z)) + ) + ) + ) + ) + 0 + (none) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 35) + (new 'static 'sparticle-launch-group + :length 3 + :duration #xbb8 + :linger-duration #x5dc + :flags #x2 + :name "group-sun" + :launcher + (new 'static 'inline-array sparticle-group-item 3 + (new 'static 'sparticle-group-item :launcher #x79e) + (new 'static 'sparticle-group-item :launcher #x79f) + (new 'static 'sparticle-group-item :launcher #x7a0) + ) + :bounds (new 'static 'sphere :w 286720.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 1950) + (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 #x200400) + (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 #x4a960000 + :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 #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #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 #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x500c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'sparticle-track-sun + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 1951) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 15 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x203500) + (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 #x4b2f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x4b098000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #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 #x1f + :flags #x1 + :initial-value -1055808844 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'sparticle-track-sun + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 1952) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 15 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x203500) + (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 #x4b098000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x4b2f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #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 #x1f + :flags #x1 + :initial-value #x4111a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :initial-value #x40000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'sparticle-track-sun + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 36) + (new 'static 'sparticle-launch-group + :length 3 + :duration #xbb8 + :linger-duration #x5dc + :flags #x2 + :name "group-green-sun" + :launcher + (new 'static 'inline-array sparticle-group-item 3 + (new 'static 'sparticle-group-item :launcher #x7b6) + (new 'static 'sparticle-group-item :launcher #x7b7) + (new 'static 'sparticle-group-item :launcher #x7b8) + ) + :bounds (new 'static 'sphere :w 286720.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 1974) + (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 #x200400) + (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 #x4a160000 + :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 #x437f0000 + :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 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :initial-value #x40800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'sparticle-track-sun + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 1975) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 15 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x203500) + (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 #x4aaf0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x4a898000 + :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 + :initial-value #x42800000 + :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 #x1f + :flags #x1 + :initial-value -1055808844 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :initial-value #x40a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'sparticle-track-sun + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 1976) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 15 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x203500) + (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 #x4a898000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x4aaf0000 + :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 + :initial-value #x42800000 + :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 #x1f + :flags #x1 + :initial-value #x4111a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :initial-value #x40c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'sparticle-track-sun + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) diff --git a/goal_src/engine/camera/cam-interface-h.gc b/goal_src/engine/camera/cam-interface-h.gc index b48bb58b38..da89505e8e 100644 --- a/goal_src/engine/camera/cam-interface-h.gc +++ b/goal_src/engine/camera/cam-interface-h.gc @@ -17,4 +17,7 @@ (define-perm *camera-combiner* camera-combiner #f) (define-perm *camera-orbit-target* (pointer process-drawable) #f) -(define-extern position-in-front-of-camera! (function vector float float vector)) \ No newline at end of file +(define-extern position-in-front-of-camera! (function vector float float vector)) + +;; TODO - forward declaration for weather-part +(define-extern matrix-local->world (function symbol symbol matrix)) diff --git a/goal_src/engine/camera/camera-h.gc b/goal_src/engine/camera/camera-h.gc index 8772a33f6a..dd64a1cbb5 100644 --- a/goal_src/engine/camera/camera-h.gc +++ b/goal_src/engine/camera/camera-h.gc @@ -421,7 +421,7 @@ (outro-t-step float :offset-assert 2376) (outro-exit-value float :offset-assert 2380) (water-drip-time uint64 :offset-assert 2384) - (water-drip basic :offset-assert 2392) + (water-drip sparticle-launch-control :offset-assert 2392) (water-drip-mult float :offset-assert 2396) (water-drip-speed float :offset-assert 2400) ) diff --git a/goal_src/engine/game/game-save.gc b/goal_src/engine/game/game-save.gc index 77930ac486..28955c6773 100644 --- a/goal_src/engine/game/game-save.gc +++ b/goal_src/engine/game/game-save.gc @@ -1612,81 +1612,85 @@ ;; used for the flashing auto-save icon, I think. -(set! (-> *part-group-id-table* 656) - (new 'static 'sparticle-launch-group - :length 1 - :duration #xbb8 - :linger-duration #x5dc - :flags #x4 - :name "group-part-save-icon" - :launcher - (new 'static 'sparticle-group-item :launcher #xa66) - :bounds (new 'static 'sphere :w 409600.0) - ) - ) +(set! + (-> *part-group-id-table* 656) + (new 'static 'sparticle-launch-group + :length 1 + :duration #xbb8 + :linger-duration #x5dc + :flags #x4 + :name "group-part-save-icon" + :launcher + (new 'static 'inline-array sparticle-group-item 1 + (new 'static 'sparticle-group-item :launcher #xa66) + ) + :bounds (new 'static 'sphere :w 409600.0) + ) + ) -;; todo floats/ints for these values. -(set! (-> *part-id-table* 2662) - (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 #x1cf06b00) - (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 #x45c00000 - :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-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-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 #x2204 - :random-mult 1 - ) - (new 'static 'sp-field-init-spec :field #x43) - ) - ) - ) +;; failed to figure out what this is: +(set! + (-> *part-id-table* 2662) + (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 #x1cf06b00) + (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 #x45c00000 + :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-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-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 #x2204 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; auto-save process diff --git a/goal_src/engine/gfx/time-of-day-h.gc b/goal_src/engine/gfx/time-of-day-h.gc index a4dd1de996..814880e75a 100644 --- a/goal_src/engine/gfx/time-of-day-h.gc +++ b/goal_src/engine/gfx/time-of-day-h.gc @@ -23,8 +23,8 @@ :size-assert #x110 :flag-assert #xb00000110 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) + (reset! (_type_) symbol 9) + (TODO-RENAME-10 (_type_ int float float vector) object 10) ; returns float or error string ) ) @@ -32,6 +32,7 @@ (new 'global 'palette-fade-controls) ) +(declare-type sparticle-launch-control basic) (deftype time-of-day-proc (process) ((year int32 :offset-assert 112) (month int32 :offset-assert 116) @@ -44,13 +45,13 @@ (time-of-day float :offset-assert 144) (time-ratio float :offset-assert 148) (star-count int32 :offset-assert 152) - (stars basic :offset-assert 156) + (stars sparticle-launch-control :offset-assert 156) (sun-count int32 :offset-assert 160) - (sun basic :offset-assert 164) + (sun sparticle-launch-control :offset-assert 164) (green-sun-count int32 :offset-assert 168) - (green-sun basic :offset-assert 172) + (green-sun sparticle-launch-control :offset-assert 172) (moon-count int32 :offset-assert 176) - (moon basic :offset-assert 180) + (moon sparticle-launch-control :offset-assert 180) ) :heap-base #x50 :method-count-assert 14 @@ -88,7 +89,7 @@ (light-masks-0 uint8 2 :offset-assert 2096) (light-masks-1 uint8 2 :offset-assert 2098) (light-interp uint32 2 :offset-assert 2100) - (sky basic :offset-assert 2108) + (sky symbol :offset-assert 2108) (sun-fade float :offset-assert 2112) (title-updated symbol :offset-assert 2116) ) diff --git a/goal_src/engine/sparticle/sparticle-h.gc b/goal_src/engine/sparticle/sparticle-h.gc index 997d117889..916ad8ad0c 100644 --- a/goal_src/engine/sparticle/sparticle-h.gc +++ b/goal_src/engine/sparticle/sparticle-h.gc @@ -68,15 +68,15 @@ ) (deftype sparticle-system (basic) - ((blocks uint32 2 :offset-assert 4) + ((blocks int32 2 :offset-assert 4) (length uint32 2 :offset-assert 12) (num-alloc uint32 2 :offset-assert 20) - (is-3d basic :offset-assert 28) - (flags uint32 :offset-assert 32) - (alloc-table uint32 :offset-assert 36) - (cpuinfo-table uint32 :offset-assert 40) - (vecdata-table uint32 :offset-assert 44) - (adgifdata-table uint32 :offset-assert 48) + (is-3d basic :offset-assert 28) + (flags uint32 :offset-assert 32) + (alloc-table uint32 :offset-assert 36) + (cpuinfo-table sparticle-cpuinfo :offset-assert 40) + (vecdata-table uint32 :offset-assert 44) + (adgifdata-table uint32 :offset-assert 48) ) :method-count-assert 9 :size-assert #x34 @@ -88,3 +88,7 @@ ;; TODO - for shadow (define-extern *part-id-table* (array sparticle-launcher)) (define-extern *part-group-id-table* (array sparticle-launch-group)) + +;; TODO - for basically everything particle related +(define-extern *sp-particle-system-2d* sparticle-system) +(define-extern *sp-particle-system-3d* sparticle-system) diff --git a/goal_src/engine/sparticle/sparticle-launcher-h.gc b/goal_src/engine/sparticle/sparticle-launcher-h.gc index 53ae4c351e..0cde9a4f6e 100644 --- a/goal_src/engine/sparticle/sparticle-launcher-h.gc +++ b/goal_src/engine/sparticle/sparticle-launcher-h.gc @@ -14,7 +14,7 @@ (initial-valuef float :offset 4) ;; TODO - floats suck - some of these values end up being NaN - these should come before the int32 fields (random-rangef float :offset 8) ;; TODO - floats suck - some of these values end up being NaN - these should come before the int32 fields (random-multf float :offset 12) ;; TODO - floats suck - some of these values end up being NaN - these should come before the int32 fields - (func basic :offset 4) + (func symbol :offset 4) (tex uint32 :offset 4) (pntr uint32 :offset 4) (sym basic :offset 4) @@ -78,7 +78,7 @@ (linger-duration uint16 :offset-assert 8) (flags uint16 :offset-assert 10) (name basic :offset-assert 12) - (launcher sparticle-group-item :offset-assert 16) + (launcher (inline-array sparticle-group-item) :offset-assert 16) (bounds sphere :inline :offset-assert 32) ) :method-count-assert 10 diff --git a/goal_src/engine/sparticle/sparticle-launcher.gc b/goal_src/engine/sparticle/sparticle-launcher.gc index d77fa113e1..516582e5c9 100644 --- a/goal_src/engine/sparticle/sparticle-launcher.gc +++ b/goal_src/engine/sparticle/sparticle-launcher.gc @@ -8,3 +8,6 @@ ;; TODO - for shadow (define *part-id-table* (new 'global 'boxed-array sparticle-launcher 3584)) (define *part-group-id-table* (new 'global 'boxed-array sparticle-launch-group 1024)) + +;; TODO - for particle related code +(define-extern sp-launch-particles-var (function sparticle-system sparticle-launcher vector symbol symbol float none)) diff --git a/goal_src/engine/sparticle/sparticle.gc b/goal_src/engine/sparticle/sparticle.gc index a80c20f982..3703a58a8a 100644 --- a/goal_src/engine/sparticle/sparticle.gc +++ b/goal_src/engine/sparticle/sparticle.gc @@ -5,6 +5,9 @@ ;; name in dgo: sparticle ;; dgos: GAME, ENGINE +;; TODO - for particle code +(define-extern sp-kill-particle (function sparticle-system sparticle-cpuinfo none)) + (defun set-particle-frame-time ((arg0 int)) (cond ((= arg0 5) @@ -46,4 +49,4 @@ ) 0 (none) - ) \ No newline at end of file + ) diff --git a/test/decompiler/reference/engine/ambient/weather-part_REF.gc b/test/decompiler/reference/engine/ambient/weather-part_REF.gc new file mode 100644 index 0000000000..49ca60a5d2 --- /dev/null +++ b/test/decompiler/reference/engine/ambient/weather-part_REF.gc @@ -0,0 +1,2569 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 188) + (new 'static 'sparticle-launch-group + :length 66 + :duration #xbb8 + :linger-duration #x5dc + :flags #x4 + :name "group-rain-screend-drop-real" + :launcher + (new 'static 'inline-array sparticle-group-item 66 + (new 'static 'sparticle-group-item :launcher #x12 :binding #x13) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x13 :flags #xc :binding #x14) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x14 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x15 :binding #x16) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x16 :flags #xc :binding #x17) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + (new 'static 'sparticle-group-item :launcher #x17 :flags #xc) + ) + :bounds (new 'static 'sphere :w 65536.0) + ) + ) + +;; definition for symbol group-rain-screend-drop, type sparticle-launch-group +(define group-rain-screend-drop (-> *part-group-id-table* 188)) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 21) + (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 #xa + :flags #x1 + :initial-value -963641344 + :random-range #x47100000 + :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 #xd + :flags #x1 + :initial-value #x46200000 + :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-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-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x442aaaab + :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 -1085485875 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 10 + :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* 22) + (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 #x200900) + (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 #x45c00000 + :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-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 #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x43088889 + :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 -1085485875 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1070677186 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x10e + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 15 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 24) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 24) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 4 + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x41888889 + :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 -1115125623 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 23) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 14 + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xe + :initial-value 12 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x45800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x454ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x454ccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x21 + :flags #x1 + :initial-value #x40c22e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value #x42888889 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x23 + :flags #x1 + :initial-value #x40422e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1070677186 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x10e + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x100 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 30 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 25) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 25) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value -1063004405 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 18) + (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 #xa + :flags #x1 + :initial-value -963641344 + :random-range #x47100000 + :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 #xd + :flags #x1 + :initial-value #x46800000 + :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-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-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x44888889 + :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 -1085485875 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value 10 + :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* 19) + (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 #x200900) + (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 #x46266666 + :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-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 #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x43888889 + :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 -1085485875 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1070677186 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x10e + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 15 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 26) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 26) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 4 + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x42088889 + :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 -1115125623 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 20) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 14 + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xe + :initial-value 24 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x46400000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x45cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x45cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x21 + :flags #x1 + :initial-value #x41422e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value #x43088889 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x23 + :flags #x1 + :initial-value #x40c22e45 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1070677186 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x10e + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x100 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 30 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 27) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 27) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 2 + (new 'static 'sp-field-init-spec + :field #x22 + :flags #x1 + :initial-value -1054615797 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 34) + (new 'static 'sparticle-launch-group + :length 3 + :duration #xbb8 + :linger-duration #x5dc + :flags #x2 + :name "group-stars" + :launcher + (new 'static 'inline-array sparticle-group-item 3 + (new 'static 'sparticle-group-item :launcher #x1c) + (new 'static 'sparticle-group-item :launcher #x1d) + (new 'static 'sparticle-group-item :launcher #x1e) + ) + :bounds (new 'static 'sphere :w 32768.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 28) + (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 #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 #x48200000 + :random-range #x48200000 + :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 #x43800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3eda740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 60 + :random-range #xef + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 31) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :initial-value -964876334 + :random-range #x46fd27d2 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x48800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :initial-value #x4b9c4000 + :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* 31) + (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 #x1c9c254 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 32) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 32) + (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 -1092979698 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 29) + (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 #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 #x48200000 + :random-range #x48200000 + :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 #x43800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x43800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3eda740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 60 + :random-range #xef + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 31) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :initial-value #x45aaaaab + :random-range #x4627d27d + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x49000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :initial-value #x4b9c4000 + :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* 30) + (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 #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 #x48200000 + :random-range #x48200000 + :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-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-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value #x3eda740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 60 + :random-range #xef + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 31) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :initial-value #x462aaaab + :random-range #x45a4fa50 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3b + :flags #x1 + :random-range #x49800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x3e + :flags #x1 + :initial-value #x4b9c4000 + :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* 33) + (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 #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x40800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :initial-value #x47200000 + :random-range #x47200000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x46000000 + :random-range #x47600000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x444ccccd + :random-range #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #xe :initial-value 4 :random-mult 1) + (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 #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x437f0000 + :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 -1037838582 + :random-range -1051036658 + :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 #x3f5a740e + :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 #x5004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 75 + :random-range 74 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 35) + (new 'static 'sp-field-init-spec + :field #x3f + :flags #x1 + :random-range #x47000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 34) + (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 #x200f00) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x47a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x444ccccd + :random-range #x43cccccd + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #xe :initial-value 4 :random-mult 1) + (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 #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x437f0000 + :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 -1037838582 + :random-range -1051036658 + :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 #x3f5a740e + :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 #x5004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x32 + :initial-value 75 + :random-range 74 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 35) + (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* 35) + (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 #x4b0 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 36) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 36) + (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 -1084591090 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; definition for function update-snow +;; INFO: Return type mismatch int vs none. +(defun update-snow ((arg0 target)) + (let ((gp-0 (-> arg0 control trans))) + (let + ((f0-0 + (lerp-scale + 0.0 + 1.0 + (vector-length (-> arg0 control transv)) + 2048.0 + 40960.0 + ) + ) + ) + (set! + (-> *part-id-table* 34 init-specs 1 initial-value) + (the-as int (- 1.0 f0-0)) + ) + (set! + (-> *part-id-table* 33 init-specs 1 initial-value) + (the-as int (* 4.0 f0-0)) + ) + ) + (set! + (-> *part-id-table* 33 init-specs 19 initial-value) + (the-as int (+ 32768.0 (vector-y-angle (-> arg0 control transv)))) + ) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 34) + gp-0 + #f + #f + 1.0 + ) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 33) + gp-0 + #f + #f + 1.0 + ) + ) + 0 + (none) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 37) + (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 #x200400) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x3fc00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x47a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x42f5c28f + :random-range #x42f5c28f + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42480000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x42a00000 + :random-range #x425c0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42480000 + :random-range #x42480000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value -1014462327 + :random-range -1006073719 + :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 #x4004 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'check-drop-level-rain + ) + (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* 38) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 15 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200400) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x1 + :initial-value #x40900000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xa + :flags #x1 + :random-range #x47a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xb + :flags #x1 + :initial-value #x47800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x42f5c28f + :random-range #x42f5c28f + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x45000000 + :random-range #x45000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42480000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x42a00000 + :random-range #x425c0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42480000 + :random-range #x42480000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value -1014462327 + :random-range -1022850935 + :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 #x4004 + :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* 39) + (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 #x200900) + (new 'static 'sp-field-init-spec + :field #x6 + :flags #x2 + :random-range 1 + :random-mult #x40000000 + ) + (new 'static 'sp-field-init-spec + :field #xd + :flags #x1 + :initial-value #x434ccccd + :random-range #x4399999a + :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 #x42dc0000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :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 #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1a + :flags #x1 + :initial-value #x41da740e + :random-range #x425a740e + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x24 + :flags #x1 + :initial-value -1084591090 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x26 + :flags #x1 + :initial-value -1070677186 + :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 #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x3a + :flags #x1 + :initial-value #x458e38e4 + :random-range #x45e38e39 + :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* 40) + (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 #x201e00) + (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 #x42a3d70a + :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 #xf + :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 #x42dc0000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x43000000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #x42c00000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x15 + :flags #x1 + :initial-value #x41800000 + :random-range #x42000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x1c + :flags #x1 + :initial-value #x41da740e + :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 -1093874483 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value #x78 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :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) + ) + ) + ) + +;; definition for function check-drop-level-rain +(defun check-drop-level-rain ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 vector)) + (when (< (-> arg2 y) (-> arg1 user-float)) + (let ((gp-0 (new 'stack-no-clear 'vector))) + (sp-kill-particle (the-as sparticle-system arg0) arg1) + (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 39) + gp-0 + #f + #f + 1.0 + ) + (sp-launch-particles-var + *sp-particle-system-3d* + (-> *part-id-table* 40) + gp-0 + #f + #f + 1.0 + ) + ) + ) + (none) + ) + +;; definition for function update-rain +;; INFO: Return type mismatch int vs none. +(defun update-rain ((arg0 target)) + (with-pp + (let ((a2-0 (new 'stack-no-clear 'vector))) + (set! (-> a2-0 x) (-> arg0 control transv x)) + (set! (-> a2-0 y) 0.0) + (set! (-> a2-0 z) (-> arg0 control transv z)) + (set! (-> a2-0 w) 1.0) + (let + ((gp-0 + (vector+float*! + (new 'stack-no-clear 'vector) + (-> arg0 control trans) + a2-0 + 0.0 + ) + ) + ) + (let* ((s5-0 (matrix-local->world #f #f)) + (f28-0 + (lerp-scale 122.88 245.76 (fabs (-> s5-0 vector 2 y)) 0.0 0.7) + ) + (f30-0 + (lerp-scale 2048.0 245.76 (fabs (-> s5-0 vector 2 y)) 0.0 0.7) + ) + ) + (let ((f26-0 (lerp-scale 0.0 0.1 (-> s5-0 vector 2 y) 0.3 0.7)) + (f0-10 (lerp-scale 1.0 0.1 (-> s5-0 vector 2 y) 0.3 0.7)) + ) + (when (< 0.0 f26-0) + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) pp) + (set! (-> a1-6 num-params) 2) + (set! (-> a1-6 message) 'part-water-drip) + (set! (-> a1-6 param 0) (the-as uint f26-0)) + (set! (-> a1-6 param 1) (the-as uint f0-10)) + (send-event-function *camera* a1-6) + ) + ) + ) + (set! + (-> *part-id-table* 37 init-specs 4 initial-value) + (the-as int f28-0) + ) + (set! + (-> *part-id-table* 37 init-specs 4 random-range) + (the-as int f28-0) + ) + (set! + (-> *part-id-table* 38 init-specs 4 initial-value) + (the-as int f28-0) + ) + (set! + (-> *part-id-table* 38 init-specs 4 random-range) + (the-as int f28-0) + ) + (set! + (-> *part-id-table* 37 init-specs 5 initial-value) + (the-as int f30-0) + ) + (set! + (-> *part-id-table* 37 init-specs 5 random-range) + (the-as int f30-0) + ) + (set! + (-> *part-id-table* 38 init-specs 5 initial-value) + (the-as int f30-0) + ) + (set! + (-> *part-id-table* 38 init-specs 5 random-range) + (the-as int f30-0) + ) + ) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 37) + gp-0 + #f + #f + 1.0 + ) + (sp-launch-particles-var + *sp-particle-system-2d* + (-> *part-id-table* 38) + gp-0 + #f + #f + 1.0 + ) + ) + ) + 0 + (none) + ) + ) + +;; definition for function cam-master-effect +;; INFO: Return type mismatch int vs none. +(defbehavior cam-master-effect camera-master () + (when + (< + (+ (-> *display* base-frame-counter) -3000) + (the-as int (-> self water-drip-time)) + ) + (set! + (-> *part-id-table* 21 init-specs 1 initial-value) + (the-as int (-> self water-drip-mult)) + ) + (set! + (-> *part-id-table* 18 init-specs 1 initial-value) + (the-as int (* 0.9 (-> self water-drip-mult))) + ) + (set! + (-> *part-id-table* 22 init-specs 11 initial-value) + (the-as int (* -2.7306666 (-> self water-drip-speed))) + ) + (set! + (-> *part-id-table* 23 init-specs 8 initial-value) + (the-as int (* -2.7306666 (-> self water-drip-speed))) + ) + (set! + (-> *part-id-table* 19 init-specs 11 initial-value) + (the-as int (* -2.7306666 (-> self water-drip-speed))) + ) + (set! + (-> *part-id-table* 20 init-specs 8 initial-value) + (the-as int (* -2.7306666 (-> self water-drip-speed))) + ) + (dummy-11 (-> self water-drip) *zero-vector*) + ) + 0 + (none) + ) + +;; definition for function sparticle-track-sun +;; INFO: Return type mismatch int vs none. +(defun sparticle-track-sun ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 matrix)) + (-> arg1 key) + (let ((s5-0 (the int (-> arg1 user-float)))) + (let* ((a1-1 (math-camera-pos)) + (a2-1 (-> *sky-parms* upload-data sun (/ s5-0 4))) + (v1-3 + (vector+float*! + (new 'stack-no-clear 'vector) + a1-1 + (the-as vector a2-1) + 4096.0 + ) + ) + ) + (set! (-> arg2 vector 0 x) (-> v1-3 x)) + (set! (-> arg2 vector 0 y) (-> v1-3 y)) + (set! (-> arg2 vector 0 z) (-> v1-3 z)) + ) + (if (!= (-> arg2 vector 2 w) 0.0) + (set! (-> arg2 vector 2 w) (* 128.0 (-> *time-of-day-context* sun-fade))) + ) + (cond + ((zero? s5-0) + (set! + (-> arg2 vector 2 x) + (-> *time-of-day-context* current-sun sun-color x) + ) + (set! + (-> arg2 vector 2 y) + (-> *time-of-day-context* current-sun sun-color y) + ) + (set! + (-> arg2 vector 2 z) + (-> *time-of-day-context* current-sun sun-color z) + ) + ) + ((or (= s5-0 1) (= s5-0 2)) + (set! + (-> arg2 vector 2 x) + (* 0.25 (-> *time-of-day-context* current-sun sun-color x)) + ) + (set! + (-> arg2 vector 2 y) + (* 0.25 (-> *time-of-day-context* current-sun sun-color y)) + ) + (set! + (-> arg2 vector 2 z) + (* 0.25 (-> *time-of-day-context* current-sun sun-color z)) + ) + ) + ) + ) + 0 + (none) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 35) + (new 'static 'sparticle-launch-group + :length 3 + :duration #xbb8 + :linger-duration #x5dc + :flags #x2 + :name "group-sun" + :launcher + (new 'static 'inline-array sparticle-group-item 3 + (new 'static 'sparticle-group-item :launcher #x79e) + (new 'static 'sparticle-group-item :launcher #x79f) + (new 'static 'sparticle-group-item :launcher #x7a0) + ) + :bounds (new 'static 'sphere :w 286720.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 1950) + (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 #x200400) + (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 #x4a960000 + :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 #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x437f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #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 #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x500c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'sparticle-track-sun + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 1951) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 15 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x203500) + (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 #x4b2f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x4b098000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #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 #x1f + :flags #x1 + :initial-value -1055808844 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :initial-value #x3f800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'sparticle-track-sun + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 1952) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 15 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x203500) + (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 #x4b098000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x4b2f0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x12 + :flags #x1 + :initial-value #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x13 + :flags #x1 + :initial-value #x42800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x14 + :flags #x1 + :initial-value #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 #x1f + :flags #x1 + :initial-value #x4111a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :initial-value #x40000000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'sparticle-track-sun + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-group-id-table* 36) + (new 'static 'sparticle-launch-group + :length 3 + :duration #xbb8 + :linger-duration #x5dc + :flags #x2 + :name "group-green-sun" + :launcher + (new 'static 'inline-array sparticle-group-item 3 + (new 'static 'sparticle-group-item :launcher #x7b6) + (new 'static 'sparticle-group-item :launcher #x7b7) + (new 'static 'sparticle-group-item :launcher #x7b8) + ) + :bounds (new 'static 'sphere :w 286720.0) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 1974) + (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 #x200400) + (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 #x4a160000 + :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 #x437f0000 + :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 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :initial-value #x40800000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'sparticle-track-sun + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 1975) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 15 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x203500) + (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 #x4aaf0000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x4a898000 + :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 + :initial-value #x42800000 + :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 #x1f + :flags #x1 + :initial-value -1055808844 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :initial-value #x40a00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'sparticle-track-sun + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + +;; failed to figure out what this is: +(set! + (-> *part-id-table* 1976) + (new 'static 'sparticle-launcher + :init-specs + (new 'static 'inline-array sp-field-init-spec 15 + (new 'static 'sp-field-init-spec :field #x1 :initial-value #x203500) + (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 #x4a898000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x10 + :flags #x1 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x11 + :flags #x1 + :initial-value #x4aaf0000 + :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 + :initial-value #x42800000 + :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 #x1f + :flags #x1 + :initial-value #x4111a2b4 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x2e + :initial-value -1 + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x2f + :initial-value #x400c + :random-mult 1 + ) + (new 'static 'sp-field-init-spec + :field #x30 + :flags #x1 + :initial-value #x40c00000 + :random-mult #x3f800000 + ) + (new 'static 'sp-field-init-spec + :field #x31 + :flags #x5 + :func 'sparticle-track-sun + ) + (new 'static 'sp-field-init-spec :field #x43) + ) + ) + ) + + + + diff --git a/test/decompiler/reference/engine/camera/camera-h_REF.gc b/test/decompiler/reference/engine/camera/camera-h_REF.gc index 2ed008d642..5b8f5cfd63 100644 --- a/test/decompiler/reference/engine/camera/camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/camera-h_REF.gc @@ -609,59 +609,59 @@ ;; definition of type camera-master (deftype camera-master (process) - ((master-options uint32 :offset-assert 112) - (num-slaves int32 :offset-assert 116) - (slave (pointer camera-slave) 2 :offset-assert 120) - (slave-options uint32 :offset-assert 128) - (view-off-param-save float :offset-assert 132) - (changer uint32 :offset-assert 136) - (cam-entity entity :offset-assert 140) - (stringMinLength float :offset-assert 144) - (stringMaxLength float :offset-assert 148) - (stringMinHeight float :offset-assert 152) - (stringMaxHeight float :offset-assert 156) - (string-min cam-vector-seeker :inline :offset-assert 160) - (string-max cam-vector-seeker :inline :offset-assert 224) - (string-push-z float :offset-assert 284) - (stringCliffHeight float :offset-assert 288) - (no-intro uint32 :offset-assert 292) - (force-blend uint32 :offset-assert 296) - (force-blend-time uint32 :offset-assert 300) - (local-down vector :inline :offset-assert 304) - (drawable-target uint64 :offset-assert 320) - (which-bone int32 :offset-assert 328) - (pov-handle uint64 :offset-assert 336) - (pov-bone int32 :offset-assert 344) - (being-attacked basic :offset-assert 348) - (attack-start uint64 :offset-assert 352) - (on-ground basic :offset-assert 360) - (under-water int32 :offset-assert 364) - (on-pole basic :offset-assert 368) - (tgt-rot-mat matrix :inline :offset-assert 384) - (tgt-face-mat matrix :inline :offset-assert 448) - (tpos-old vector :inline :offset-assert 512) - (tpos-curr vector :inline :offset-assert 528) - (target-height float :offset-assert 544) - (tpos-old-adj vector :inline :offset-assert 560) - (tpos-curr-adj vector :inline :offset-assert 576) - (tpos-tgt vector :inline :offset-assert 592) - (upspeed float :offset-assert 608) - (pitch-off vector :inline :offset-assert 624) - (foot-offset float :offset-assert 640) - (head-offset float :offset-assert 644) - (target-spline tracking-spline :inline :offset-assert 656) - (ease-from vector :inline :offset-assert 2304) - (ease-t float :offset-assert 2320) - (ease-step float :offset-assert 2324) - (ease-to vector :inline :offset-assert 2336) - (outro-curve curve :inline :offset-assert 2352) - (outro-t float :offset-assert 2372) - (outro-t-step float :offset-assert 2376) - (outro-exit-value float :offset-assert 2380) - (water-drip-time uint64 :offset-assert 2384) - (water-drip basic :offset-assert 2392) - (water-drip-mult float :offset-assert 2396) - (water-drip-speed float :offset-assert 2400) + ((master-options uint32 :offset-assert 112) + (num-slaves int32 :offset-assert 116) + (slave (pointer camera-slave) 2 :offset-assert 120) + (slave-options uint32 :offset-assert 128) + (view-off-param-save float :offset-assert 132) + (changer uint32 :offset-assert 136) + (cam-entity entity :offset-assert 140) + (stringMinLength float :offset-assert 144) + (stringMaxLength float :offset-assert 148) + (stringMinHeight float :offset-assert 152) + (stringMaxHeight float :offset-assert 156) + (string-min cam-vector-seeker :inline :offset-assert 160) + (string-max cam-vector-seeker :inline :offset-assert 224) + (string-push-z float :offset-assert 284) + (stringCliffHeight float :offset-assert 288) + (no-intro uint32 :offset-assert 292) + (force-blend uint32 :offset-assert 296) + (force-blend-time uint32 :offset-assert 300) + (local-down vector :inline :offset-assert 304) + (drawable-target uint64 :offset-assert 320) + (which-bone int32 :offset-assert 328) + (pov-handle uint64 :offset-assert 336) + (pov-bone int32 :offset-assert 344) + (being-attacked basic :offset-assert 348) + (attack-start uint64 :offset-assert 352) + (on-ground basic :offset-assert 360) + (under-water int32 :offset-assert 364) + (on-pole basic :offset-assert 368) + (tgt-rot-mat matrix :inline :offset-assert 384) + (tgt-face-mat matrix :inline :offset-assert 448) + (tpos-old vector :inline :offset-assert 512) + (tpos-curr vector :inline :offset-assert 528) + (target-height float :offset-assert 544) + (tpos-old-adj vector :inline :offset-assert 560) + (tpos-curr-adj vector :inline :offset-assert 576) + (tpos-tgt vector :inline :offset-assert 592) + (upspeed float :offset-assert 608) + (pitch-off vector :inline :offset-assert 624) + (foot-offset float :offset-assert 640) + (head-offset float :offset-assert 644) + (target-spline tracking-spline :inline :offset-assert 656) + (ease-from vector :inline :offset-assert 2304) + (ease-t float :offset-assert 2320) + (ease-step float :offset-assert 2324) + (ease-to vector :inline :offset-assert 2336) + (outro-curve curve :inline :offset-assert 2352) + (outro-t float :offset-assert 2372) + (outro-t-step float :offset-assert 2376) + (outro-exit-value float :offset-assert 2380) + (water-drip-time uint64 :offset-assert 2384) + (water-drip sparticle-launch-control :offset-assert 2392) + (water-drip-mult float :offset-assert 2396) + (water-drip-speed float :offset-assert 2400) ) :heap-base #x900 :method-count-assert 14 @@ -744,7 +744,3 @@ ;; failed to figure out what this is: 0 - - - - diff --git a/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc b/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc index 26d6d05f11..4108d53451 100644 --- a/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc @@ -74,14 +74,14 @@ (format #t "~Tfriction: ~f~%" (-> obj friction)) (format #t "~Ttimer: ~D~%" (-> obj timer)) (format #t "~Tflags: ~D~%" (-> obj flags)) - (format #t "~Tuser-int32: ~D~%" (-> obj user-int32)) - (format #t "~Tuser-uint32: ~D~%" (-> obj user-uint32)) - (format #t "~Tuser-float: ~f~%" (the-as float (-> obj user-uint32))) - (format #t "~Tuser-pntr: #x~X~%" (-> obj user-uint32)) + (format #t "~Tuser-int32: ~D~%" (-> obj user-float)) + (format #t "~Tuser-uint32: ~D~%" (-> obj user-float)) + (format #t "~Tuser-float: ~f~%" (the-as float (-> obj user-float))) + (format #t "~Tuser-pntr: #x~X~%" (-> obj user-float)) (format #t "~Tuser-sprite: #~%" - (-> obj user-uint32) + (-> obj user-float) ) (format #t "~Tfunc: ~A~%" (-> obj func)) (format #t "~Tnext-time: ~D~%" (-> obj next-time)) @@ -122,15 +122,15 @@ ;; definition of type sparticle-system (deftype sparticle-system (basic) - ((blocks uint32 2 :offset-assert 4) - (length uint32 2 :offset-assert 12) - (num-alloc uint32 2 :offset-assert 20) - (is-3d basic :offset-assert 28) - (flags uint32 :offset-assert 32) - (alloc-table uint32 :offset-assert 36) - (cpuinfo-table uint32 :offset-assert 40) - (vecdata-table uint32 :offset-assert 44) - (adgifdata-table uint32 :offset-assert 48) + ((blocks int32 2 :offset-assert 4) + (length uint32 2 :offset-assert 12) + (num-alloc uint32 2 :offset-assert 20) + (is-3d basic :offset-assert 28) + (flags uint32 :offset-assert 32) + (alloc-table uint32 :offset-assert 36) + (cpuinfo-table sparticle-cpuinfo :offset-assert 40) + (vecdata-table uint32 :offset-assert 44) + (adgifdata-table uint32 :offset-assert 48) ) :method-count-assert 9 :size-assert #x34 diff --git a/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc b/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc index 0a2377af1b..62983b38ea 100644 --- a/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc @@ -11,7 +11,7 @@ (initial-valuef float :offset 4) (random-rangef float :offset 8) (random-multf float :offset 12) - (func basic :offset 4) + (func symbol :offset 4) (tex uint32 :offset 4) (pntr uint32 :offset 4) (sym basic :offset 4) @@ -141,13 +141,13 @@ ;; definition of type sparticle-launch-group (deftype sparticle-launch-group (basic) - ((length int16 :offset-assert 4) - (duration uint16 :offset-assert 6) - (linger-duration uint16 :offset-assert 8) - (flags uint16 :offset-assert 10) - (name basic :offset-assert 12) - (launcher sparticle-group-item :offset-assert 16) - (bounds sphere :inline :offset-assert 32) + ((length int16 :offset-assert 4) + (duration uint16 :offset-assert 6) + (linger-duration uint16 :offset-assert 8) + (flags uint16 :offset-assert 10) + (name basic :offset-assert 12) + (launcher (inline-array sparticle-group-item) :offset-assert 16) + (bounds sphere :inline :offset-assert 32) ) :method-count-assert 10 :size-assert #x30 diff --git a/test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc b/test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc index 5d704bb5c9..9289f8ef2e 100644 --- a/test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc @@ -29,8 +29,8 @@ :size-assert #x110 :flag-assert #xb00000110 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) + (reset! (_type_) symbol 9) + (TODO-RENAME-10 (_type_ int float float vector) object 10) ) ) @@ -48,24 +48,24 @@ ;; definition of type time-of-day-proc (deftype time-of-day-proc (process) - ((year int32 :offset-assert 112) - (month int32 :offset-assert 116) - (week int32 :offset-assert 120) - (day int32 :offset-assert 124) - (hour int32 :offset-assert 128) - (minute int32 :offset-assert 132) - (second int32 :offset-assert 136) - (frame int32 :offset-assert 140) - (time-of-day float :offset-assert 144) - (time-ratio float :offset-assert 148) - (star-count int32 :offset-assert 152) - (stars basic :offset-assert 156) - (sun-count int32 :offset-assert 160) - (sun basic :offset-assert 164) - (green-sun-count int32 :offset-assert 168) - (green-sun basic :offset-assert 172) - (moon-count int32 :offset-assert 176) - (moon basic :offset-assert 180) + ((year int32 :offset-assert 112) + (month int32 :offset-assert 116) + (week int32 :offset-assert 120) + (day int32 :offset-assert 124) + (hour int32 :offset-assert 128) + (minute int32 :offset-assert 132) + (second int32 :offset-assert 136) + (frame int32 :offset-assert 140) + (time-of-day float :offset-assert 144) + (time-ratio float :offset-assert 148) + (star-count int32 :offset-assert 152) + (stars sparticle-launch-control :offset-assert 156) + (sun-count int32 :offset-assert 160) + (sun sparticle-launch-control :offset-assert 164) + (green-sun-count int32 :offset-assert 168) + (green-sun sparticle-launch-control :offset-assert 172) + (moon-count int32 :offset-assert 176) + (moon sparticle-launch-control :offset-assert 180) ) :heap-base #x50 :method-count-assert 14 @@ -141,7 +141,7 @@ (light-masks-0 uint8 2 :offset-assert 2096) (light-masks-1 uint8 2 :offset-assert 2098) (light-interp uint32 2 :offset-assert 2100) - (sky basic :offset-assert 2108) + (sky symbol :offset-assert 2108) (sun-fade float :offset-assert 2112) (title-updated symbol :offset-assert 2116) )