diff --git a/common/goos/PrettyPrinter.cpp b/common/goos/PrettyPrinter.cpp index b723a97666..6ad132809c 100644 --- a/common/goos/PrettyPrinter.cpp +++ b/common/goos/PrettyPrinter.cpp @@ -33,7 +33,7 @@ goos::Object float_representation(float value) { u8 exp = (int_value >> 23) & 0xff; u32 mant = int_value & 0x7fffff; if ((exp == 0 && mant != 0) || exp == 0xff) { - lg::warn("PS2-incompatible float (0x{:08X}) detected! Writing as the-as cast.", int_value); + // lg::warn("PS2-incompatible float (0x{:08X}) detected! Writing as the-as cast.", int_value); return pretty_print::build_list("the-as", "float", fmt::format("#x{:x}", int_value)); } else if (const_floats.find(int_value) != const_floats.end()) { return pretty_print::to_symbol(const_floats.at(int_value)); diff --git a/common/type_system/TypeSystem.cpp b/common/type_system/TypeSystem.cpp index 001d0316a5..f0e3bd115a 100644 --- a/common/type_system/TypeSystem.cpp +++ b/common/type_system/TypeSystem.cpp @@ -392,8 +392,12 @@ Type* TypeSystem::lookup_type(const std::string& name) const { return kv->second.get(); } - if (m_forward_declared_types.find(name) != m_forward_declared_types.end()) { + auto fd = m_forward_declared_types.find(name); + if (fd != m_forward_declared_types.end()) { throw_typesystem_error("Type {} is not fully defined.\n", name); + // kind of a hack... if the type is forward-declared, look for the parent type and hope for the + // best. + // return lookup_type(fd->second); } else { throw_typesystem_error("Type {} is not defined.\n", name); } @@ -756,7 +760,7 @@ MethodInfo TypeSystem::lookup_method(const std::string& type_name, int method_id } } - throw_typesystem_error("The method with id {} of type {} could not be found.\n", method_id, + throw_typesystem_error("The method with id {} of type {} could not be found.", method_id, type_name); } diff --git a/decompiler/ObjectFile/ObjectFileDB.cpp b/decompiler/ObjectFile/ObjectFileDB.cpp index 9771ac7a40..c80657bedd 100644 --- a/decompiler/ObjectFile/ObjectFileDB.cpp +++ b/decompiler/ObjectFile/ObjectFileDB.cpp @@ -244,6 +244,9 @@ void ObjectFileDB::add_obj_from_dgo(const std::string& obj_name, uint32_t obj_size, const std::string& dgo_name, const Config& config) { + if (config.banned_objects.find(obj_name) != config.banned_objects.end()) { + return; + } if (!config.allowed_objects.empty()) { if (config.allowed_objects.find(obj_name) == config.allowed_objects.end()) { return; diff --git a/decompiler/config.cpp b/decompiler/config.cpp index 352c0ac376..ae1949857d 100644 --- a/decompiler/config.cpp +++ b/decompiler/config.cpp @@ -59,6 +59,10 @@ Config read_config_file(const std::string& path_to_config_file) { for (const auto& x : allowed) { config.allowed_objects.insert(x); } + auto banned = cfg.at("banned_objects").get>(); + for (const auto& x : banned) { + config.banned_objects.insert(x); + } auto type_casts_json = read_json_file_from_config(cfg, "type_casts_file"); for (auto& kv : type_casts_json.items()) { diff --git a/decompiler/config.h b/decompiler/config.h index 5994a02ca2..06f961592e 100644 --- a/decompiler/config.h +++ b/decompiler/config.h @@ -107,6 +107,7 @@ struct Config { bool generate_symbol_definition_map = false; std::unordered_set allowed_objects; + std::unordered_set banned_objects; std::unordered_map>> register_type_casts_by_function_by_atomic_op_idx; std::unordered_map> diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index ce0e1793d6..fa838630d7 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -1020,6 +1020,10 @@ (ogre-buzzer #x601) (ogre-boss #x603) + (assistant-voicebox-intro-ogre-race #x605) + + (sidekick-speech-hint-ogre-race #x61c) + (lavatube-end #x700) (lavatube-buzzer #x701) @@ -1694,7 +1698,7 @@ ) (deftype vector2h (structure) - ((data int16 2 :score -9999 :offset-assert 0) + ((data int16 2 :score -9999 :offset-assert 0 :do-not-decompile) (x int16 :offset 0) (y int16 :offset 2) ) @@ -6249,7 +6253,7 @@ :size-assert #x20 :flag-assert #x1300000020 (:methods - (dummy-18 () none 18) + (dummy-18 (_type_ vector) none 18) ) ) @@ -6260,20 +6264,20 @@ (deftype drawable-inline-array-ambient (drawable-inline-array) ((data drawable-ambient 1 :inline) - (pad uint8 4)) + (pad uint32)) :flag-assert #x1200000044 ) (deftype level-hint (process) - ((text-id-to-display uint32 :offset-assert 112) - (sound-to-play basic :offset-assert 116) + ((text-id-to-display game-text-id :offset-assert 112) + (sound-to-play string :offset-assert 116) (trans vector :offset-assert 120) (sound-id sound-id :offset-assert 124) - (mode basic :offset-assert 128) - (total-time uint64 :offset-assert 136) - (total-off-time uint64 :offset-assert 144) - (last-time uint64 :offset-assert 152) - (voicebox uint64 :offset-assert 160) + (mode symbol :offset-assert 128) + (total-time int64 :offset-assert 136) + (total-off-time int64 :offset-assert 144) + (last-time int64 :offset-assert 152) + (voicebox handle :offset-assert 160) ) :heap-base #x40 :method-count-assert 16 @@ -6281,7 +6285,7 @@ :flag-assert #x10004000a8 ;; inherited inspect of process (:methods - (dummy-14 () none 14) + (print-text (_type_) none 14) (dummy-15 (_type_) symbol 15) ) ) @@ -6328,8 +6332,8 @@ ) (deftype task-hint-control (structure) - ((task uint8 :offset-assert 0) - (delay uint64 :offset-assert 8) + ((task game-task :offset-assert 0) + (delay int64 :offset-assert 8) ) :method-count-assert 9 :size-assert #x10 @@ -9111,19 +9115,19 @@ (total-deaths int32 :offset-assert 156) (continue-deaths int32 :offset-assert 160) (fuel-cell-deaths int32 :offset-assert 164) - (game-start-time uint64 :offset-assert 168) - (continue-time uint64 :offset-assert 176) - (death-time uint64 :offset-assert 184) - (hit-time uint64 :offset-assert 192) - (fuel-cell-pickup-time uint64 :offset-assert 200) - (fuel-cell-time (array uint64) :offset-assert 208) - (enter-level-time (array uint64) :offset-assert 212) - (in-level-time (array uint64) :offset-assert 216) - (blackout-time uint64 :offset-assert 224) - (letterbox-time uint64 :offset-assert 232) - (hint-play-time uint64 :offset-assert 240) - (display-text-time uint64 :offset-assert 248) - (display-text-handle uint64 :offset-assert 256) + (game-start-time int64 :offset-assert 168) + (continue-time int64 :offset-assert 176) + (death-time int64 :offset-assert 184) + (hit-time int64 :offset-assert 192) + (fuel-cell-pickup-time int64 :offset-assert 200) + (fuel-cell-time (array int64) :offset-assert 208) + (enter-level-time (array int64) :offset-assert 212) + (in-level-time (array int64) :offset-assert 216) + (blackout-time int64 :offset-assert 224) + (letterbox-time int64 :offset-assert 232) + (hint-play-time int64 :offset-assert 240) + (display-text-time int64 :offset-assert 248) + (display-text-handle handle :offset-assert 256) (death-movie-tick int32 :offset-assert 264) (want-auto-save symbol :offset-assert 268) (auto-save-proc handle :offset-assert 272) @@ -10102,7 +10106,6 @@ :method-count-assert 10 :size-assert #x68 :flag-assert #xa00000068 - ;; field handle is likely a value type (:methods (dummy-9 (_type_ attack-info) none 9) ) @@ -10943,9 +10946,9 @@ (dummy-9 () none 9) (dummy-10 (_type_ uint) collide-shape-prim 10) (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) + (add-fg-prim-using-box (_type_) none 12) + (add-fg-prim-using-line-sphere (_type_) none 13) + (add-fg-prim-using-y-probe (_type_) none 14) (dummy-15 () none 15) (dummy-16 () none 16) (dummy-17 () none 17) @@ -12037,8 +12040,8 @@ (deftype collide-cache-prim (structure) ((prim-core collide-prim-core :inline :offset-assert 0) ;;(extra-quad UNKNOWN 16 :offset-assert 32) - (ccache basic :offset-assert 32) - (prim basic :offset-assert 36) + (ccache collide-cache :offset-assert 32) + (prim collide-shape-prim :offset-assert 36) (first-tri uint16 :offset-assert 40) (num-tris uint16 :offset-assert 42) (unused uint8 4 :offset-assert 44) @@ -12052,8 +12055,8 @@ :size-assert #x30 :flag-assert #xb00000030 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-9 (_type_ float pointer (pointer collide-cache) float int) float 9) + (dummy-10 (_type_ float pointer (pointer collide-cache) float int) float 10) ) ) @@ -12072,30 +12075,30 @@ :size-assert #x8670 :flag-assert #x2100008670 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-9 (_type_) none 9) + (dummy-10 (_type_ vector vector float int process collide-mesh-cache-tri int) float 10) (dummy-11 (_type_ collide-using-spheres-params) none 11) - (dummy-12 (_type_ vector float uint process bone uint) float 12) ;; TODO - bone not confirmed + (fill-and-probe-using-y-probe (_type_ vector float uint process collide-tri-result uint) float 12) (dummy-13 (_type_ int uint process-drawable uint) none 13) - (dummy-14 () none 14) + (dummy-14 (_type_ vector vector float int process int) none 14) (dummy-15 (_type_ int) none 15) (dummy-16 (_type_ vector float uint process uint) none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) - (dummy-20 (_type_ vector float uint bone uint) none 20) ;; TODO - bone not confirmed - (dummy-21 () none 21) - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) - (dummy-28 () none 28) - (dummy-29 () none 29) - (dummy-30 () none 30) - (dummy-31 () none 31) - (dummy-32 () none 32) + (initialize (_type_) none 17) + (dummy-18 (_type_ vector vector float int collide-mesh-cache-tri int) float 18) + (probe-using-spheres (_type_) none 19) + (dummy-20 (_type_ vector float uint collide-tri-result uint) float 20) + (dummy-21 (_type_) none 21) + (dummy-22 (_type_) none 22) + (dummy-23 (_type_) none 23) + (dummy-24 (_type_) none 24) + (dummy-25 (_type_) none 25) + (dummy-26 (_type_) none 26) + (dummy-27 (_type_) none 27) + (dummy-28 (_type_) none 28) + (dummy-29 (_type_) none 29) + (dummy-30 (_type_) none 30) + (dummy-31 (_type_) none 31) + (dummy-32 (_type_) none 32) ) ) @@ -13149,8 +13152,8 @@ ) (deftype entity-ambient-data (structure) - ((user-object object 3 :offset-assert 0) - (function basic :offset-assert 12) + ((user-object object 3 :score -100 :offset-assert 0) + (function (function drawable-ambient vector none) :offset-assert 12) (quad uint128 :offset 0) (user-uint64 uint64 1 :offset 0) (user-float float 3 :offset 0) @@ -13174,12 +13177,13 @@ ) (deftype entity-ambient (entity) - () + ((ambient-data entity-ambient-data :score 50 :offset 24) ;; added! + ) :method-count-assert 29 :size-assert #x34 :flag-assert #x1d00000034 (:methods - (dummy-27 () none 27) + (draw-debug (_type_) none 27) (birth-ambient! (_type_) none 28) ) ) @@ -16429,7 +16433,7 @@ ;; - Functions -(define-extern sphere-in-view-frustum? function) +(define-extern sphere-in-view-frustum? (function vector symbol)) (define-extern kill-all-particles-with-key (function sparticle-launch-control none)) (define-extern sp-relaunch-setup-fields function) (define-extern sp-init-fields! function) @@ -16586,8 +16590,8 @@ :size-assert #x18 :flag-assert #x1000000018 (:methods - (get-game-task (_type_) game-task 9) - (get-task-status (_type_) task-status 10) + (get-task (_type_) game-task 9) + (get-status (_type_) task-status 10) (task-available? (_type_ task-control) symbol 11) (closed? (_type_) symbol 12) (closed-by-default? (_type_) symbol 13) @@ -16710,7 +16714,7 @@ ;; - Functions (define-extern get-task-control (function game-task task-control)) -(define-extern level-hint-spawn (function game-text-id string symbol process-tree int none)) +(define-extern level-hint-spawn (function game-text-id string entity process-tree game-task none)) (define-extern get-game-count (function int count-info)) (define-extern activate-orb-all (function int int)) (define-extern close-specific-task! (function game-task task-status int)) @@ -17550,7 +17554,7 @@ (define-extern command-list-get-process (function object process)) (define-extern command-get-quoted-param (function object symbol symbol)) (define-extern command-get-int (function object int int)) -(define-extern ambient-hint-spawn (function symbol symbol process-tree none)) +(define-extern ambient-hint-spawn (function string vector process-tree symbol object)) (define-extern command-get-float (function object float float)) (define-extern process-by-ename (function string process)) (define-extern point-in-polygon function) @@ -18843,12 +18847,12 @@ (define-extern find-hint-control-index (function level-hint-control int)) (define-extern start-hint-timer (function level-hint-control none)) (define-extern increment-success-for-hint (function level-hint-control none)) -(define-extern can-hint-be-played? (function int symbol)) +(define-extern can-hint-be-played? (function int entity string symbol)) (define-extern update-task-hints (function none)) ;; - Symbols -(define-extern *hint-semaphore* (pointer process-tree)) ;; likely a level-hint process +(define-extern *hint-semaphore* (pointer level-hint)) ;; ---------------------- @@ -18857,39 +18861,58 @@ ;; Containing DGOs - ['GAME', 'ENGINE'] ;; Version - 3 +(defenum hint-command + (if-unknown 0) + (if-known 1) + (if-resolved 2) + (if-need-introduction 3) + (if-need-reminder 4) + (if-need-reminder-a 5) + (if-need-reward-speech 6) + (close-need-hint 7) + (close-need-introduction 8) + (close-need-reminder 9) + (close-need-reminder-a 10) + (close-need-reward-speech 11) + (close-need-resolution 12) + (if-at-most-need-reminder-a 13) + ) + +(declare-type voicebox process-drawable) + ;; - Functions -(define-extern ambient-type-error function) -(define-extern ambient-type-sound function) -(define-extern ambient-type-sound-loop function) -(define-extern ambient-type-poi function) -(define-extern ambient-type-hint function) -(define-extern ambient-type-light function) -(define-extern ambient-type-dark function) -(define-extern ambient-type-weather-off function) -(define-extern ambient-type-ocean-off function) -(define-extern ambient-type-ocean-near-off function) -(define-extern ambient-type-music function) -(define-extern level-hint-task-process function) -(define-extern bottom-hud-hidden? function) -(define-extern level-hint-init-by-other function) -(define-extern voicebox-spawn function) -(define-extern hide-bottom-hud function) -(define-extern ambient-hint-init-by-other (function none)) -(define-extern level-hint-process-cmd function) +(define-extern ambient-type-error (function drawable-ambient vector none)) +(define-extern ambient-type-sound (function drawable-ambient vector none)) +(define-extern ambient-type-sound-loop (function drawable-ambient vector none)) +(define-extern ambient-type-poi (function drawable-ambient vector none)) +(define-extern ambient-type-hint (function drawable-ambient vector none)) +(define-extern ambient-type-light (function drawable-ambient vector none)) +(define-extern ambient-type-dark (function drawable-ambient vector none)) +(define-extern ambient-type-weather-off (function drawable-ambient vector none)) +(define-extern ambient-type-ocean-off (function drawable-ambient vector none)) +(define-extern ambient-type-ocean-near-off (function drawable-ambient vector none)) +(define-extern ambient-type-music (function drawable-ambient vector none)) +(define-extern level-hint-task-process (function entity uint128 string int)) +(define-extern bottom-hud-hidden? (function symbol)) +(define-extern level-hint-init-by-other (function game-text-id string entity none :behavior level-hint)) +(define-extern voicebox-spawn (function process vector (pointer process))) +(define-extern hide-bottom-hud (function none)) +(define-extern ambient-hint-init-by-other (function string vector symbol none :behavior level-hint)) +(define-extern level-hint-process-cmd (function (pointer int32) int int int)) (define-extern task-known? (function game-task symbol)) (define-extern can-grab-display? (function process-taskable symbol)) ;; unconfirmed, see assistant-firecanyon -(define-extern level-hint-displayed? (function symbol)) ;; unconfirmed, see assistant-firecanyon +(define-extern level-hint-displayed? (function symbol symbol)) (define-extern ambient-inspect function) ;; - Unknowns -;;(define-extern level-hint-exit object) ;; unknown type -;;(define-extern level-hint-error object) ;; unknown type -;;(define-extern level-hint-ambient-sound object) ;; unknown type -;;(define-extern level-hint-sidekick object) ;; unknown type -;;(define-extern level-hint-normal object) ;; unknown type -(define-extern *execute-ambients* symbol) ;; unknown type +(define-extern level-hint-exit (state level-hint)) +(define-extern level-hint-error (state string string level-hint)) +(define-extern level-hint-ambient-sound (state string level-hint)) +(define-extern level-hint-sidekick (state string level-hint)) +(define-extern level-hint-normal (state level-hint)) +(define-extern *execute-ambients* symbol) ;; ---------------------- @@ -18971,10 +18994,10 @@ (define-extern command-get-trans function) (define-extern manipy-init (function vector entity skeleton-group vector none :behavior manipy)) (define-extern part-tracker-notify function) -(define-extern clone-anim-once function) +(define-extern clone-anim-once (function handle int symbol string none :behavior process-drawable)) (define-extern convert-to-hud-object function) -(define-extern merc-eye-anim function) -(define-extern clone-anim function) +(define-extern merc-eye-anim (function process-drawable none)) +(define-extern clone-anim (function handle int symbol string none :behavior process-drawable)) (define-extern command-get-camera function) (define-extern ja-anim-done? function) (define-extern camera-anim function) @@ -18988,22 +19011,22 @@ ;; - Unknowns -(define-extern *particle-quat* quaternion) ;; unknown type -(define-extern touch-tracker-idle (state touch-tracker)) ;; unknown type -(define-extern cam-launcher-longfall (state camera-tracker)) ;; unknown type -(define-extern cam-launcher-shortfall (state camera-tracker)) ;; unknown type -(define-extern launcher-idle (state launcher)) ;; unknown type -(define-extern launcher-deactivated (state launcher)) ;; unknown type -(define-extern launcher-active (state launcher)) ;; unknown type +(define-extern *particle-quat* quaternion) +(define-extern touch-tracker-idle (state touch-tracker)) +(define-extern cam-launcher-longfall (state camera-tracker)) +(define-extern cam-launcher-shortfall (state camera-tracker)) +(define-extern launcher-idle (state launcher)) +(define-extern launcher-deactivated (state launcher)) +(define-extern launcher-active (state launcher)) ;;(define-extern beach-part-grotto-1 object) ;; unknown type -(define-extern part-spawner-active (state part-spawner)) ;; unknown type -(define-extern *lev-string* string) ;; unknown type -(define-extern med-res-level-idle (state med-res-level)) ;; unknown type -(define-extern camera-tracker-process camera-tracker) ;; unknown type -(define-extern part-tracker-process part-tracker) ;; unknown type +(define-extern part-spawner-active (state part-spawner)) +(define-extern *lev-string* string) +(define-extern med-res-level-idle (state med-res-level)) +(define-extern camera-tracker-process camera-tracker) +(define-extern part-tracker-process part-tracker) (define-extern manipy-idle (state manipy)) -(define-extern swingpole-stance (state swingpole)) ;; unknown type -(define-extern swingpole-active (state swingpole)) ;; unknown type +(define-extern swingpole-stance (state swingpole)) +(define-extern swingpole-active (state swingpole)) ;; ---------------------- @@ -22303,7 +22326,7 @@ (nav-enemy-jump-to-point () _type_ :state 36) (TODO-RENAME-37 (_type_) none 37) (TODO-RENAME-38 (_type_) none 38) - (TODO-RENAME-39 (_type_) none 39) + (common-post (_type_) none 39) (dummy-40 (_type_) none 40) (dummy-41 (_type_) none 41) (TODO-RENAME-42 (_type_) int 42) @@ -22311,7 +22334,7 @@ (dummy-44 (_type_ process event-message-block) object 44) (TODO-RENAME-45 (_type_ nav-enemy-info) none 45) (TODO-RENAME-46 (_type_ float) basic 46) - (TODO-RENAME-47 (_type_) none 47) ;; - Stubbed + (initialize-collision (_type_) none 47) (TODO-RENAME-48 (_type_) none 48) ;; - Stubbed (TODO-RENAME-49 (_type_ nav-enemy-info) float 49) (TODO-RENAME-50 (_type_ vector) symbol 50) @@ -39057,99 +39080,73 @@ ;; - Types -; (deftype plunger-lurker (process-drawable) -; ((alt-actor basic :offset-assert 176) -; (got-hit basic :offset-assert 180) -; ) -; :method-count-assert 20 -; :size-assert #xb8 -; :heap-base #x50 -; :flag-assert #x14005000b8 -; ;; inherited inspect of process-drawable -; (:methods -; (dummy-9 () none 9) -; (dummy-10 () none 10) -; (dummy-11 () none 11) -; (dummy-12 () none 12) -; (dummy-13 () none 13) -; (dummy-14 () none 14) -; (dummy-15 () none 15) -; (dummy-16 () none 16) -; (dummy-17 () none 17) -; (dummy-18 () none 18) -; (dummy-19 () none 19) -; ) -; ) +(deftype plunger-lurker (process-drawable) + ((alt-actor entity-actor :offset-assert 176) + (got-hit symbol :offset-assert 180) + ) + :method-count-assert 20 + :size-assert #xb8 + :heap-base #x50 + :flag-assert #x14005000b8 + ) -; (deftype flying-lurker (process-drawable) -; ((curve-position float :offset-assert 176) -; (speed float :offset-assert 180) -; (tangent vector :inline :offset-assert 192) -; (anim-blend float :offset-assert 208) -; (y-offset float :offset-assert 212) -; (y-offset-desired float :offset-assert 216) -; (y-vel float :offset-assert 220) -; (last-look-time uint64 :offset-assert 224) -; (time-to-next-look uint64 :offset-assert 232) -; (take-off basic :offset-assert 240) -; (race-seconds float :offset-assert 244) -; (race-start-time uint64 :offset-assert 248) -; (rank int32 :offset-assert 256) -; (alt-actor basic :offset-assert 260) -; (alt-trans vector :offset-assert 264) -; (shadow-backup basic :offset-assert 268) -; (try-count uint8 :offset-assert 272) -; (try-counted basic :offset-assert 276) -; (default-bounds vector :inline :offset-assert 288) -; ) -; :method-count-assert 21 -; :size-assert #x130 -; :heap-base #xc0 -; :flag-assert #x1500c00130 -; ;; inherited inspect of process-drawable -; (:methods -; (dummy-9 () none 9) -; (dummy-10 () none 10) -; (dummy-11 () none 11) -; (dummy-12 () none 12) -; (dummy-13 () none 13) -; (dummy-14 () none 14) -; (dummy-15 () none 15) -; (dummy-16 () none 16) -; (dummy-17 () none 17) -; (dummy-18 () none 18) -; (dummy-19 () none 19) -; (dummy-20 () none 20) -; ) -; ) +(deftype flying-lurker (process-drawable) + ((curve-position float :offset-assert 176) + (speed float :offset-assert 180) + (tangent vector :inline :offset-assert 192) + (anim-blend float :offset-assert 208) + (y-offset float :offset-assert 212) + (y-offset-desired float :offset-assert 216) + (y-vel float :offset-assert 220) + (last-look-time int64 :offset-assert 224) + (time-to-next-look int64 :offset-assert 232) + (take-off symbol :offset-assert 240) + (race-seconds float :offset-assert 244) + (race-start-time int64 :offset-assert 248) + (rank int32 :offset-assert 256) + (alt-actor entity-actor :offset-assert 260) + (alt-trans vector :offset-assert 264) + (shadow-backup shadow-geo :offset-assert 268) + (try-count uint8 :offset-assert 272) + (try-counted symbol :offset-assert 276) + (default-bounds vector :inline :offset-assert 288) + ) + :method-count-assert 21 + :size-assert #x130 + :heap-base #xc0 + :flag-assert #x1500c00130 + (:methods + (dummy-20 (_type_) none 20) + ) + ) ;; - Functions -(define-extern play-movie? function) -(define-extern flying-lurker-move function) -(define-extern flying-lurker-rotate function) -(define-extern first? function) -(define-extern flying-lurker-handler function) -(define-extern flying-lurker-play-intro function) -(define-extern flying-lurker-inc-try-count function) -(define-extern flying-lurker-calc-anim-speed function) -(define-extern flying-lurker-calc-speed function) +(define-extern play-movie? (function symbol)) +(define-extern flying-lurker-move (function none :behavior flying-lurker)) +(define-extern flying-lurker-rotate (function quaternion :behavior flying-lurker)) +(define-extern first? (function symbol :behavior flying-lurker)) +(define-extern flying-lurker-handler (function process int symbol event-message-block object :behavior flying-lurker)) +(define-extern flying-lurker-play-intro (function none :behavior flying-lurker)) +(define-extern flying-lurker-inc-try-count (function none :behavior flying-lurker)) +(define-extern flying-lurker-calc-anim-speed (function float :behavior flying-lurker)) +(define-extern flying-lurker-calc-speed (function meters meters meters meters none :behavior flying-lurker)) ;; - Unknowns (define-extern *flying-lurker-sg* skeleton-group) -;;(define-extern flying-lurker-die object) ;; unknown type -;;(define-extern flying-lurker-idle object) ;; unknown type -;;(define-extern flying-lurker-start object) ;; unknown type -;;(define-extern flying-lurker-clone object) ;; unknown type -;;(define-extern flying-lurker-sleep object) ;; unknown type +(define-extern flying-lurker-die (state flying-lurker)) +(define-extern flying-lurker-idle (state flying-lurker)) +(define-extern flying-lurker-start (state flying-lurker)) +(define-extern flying-lurker-clone (state handle string flying-lurker)) +(define-extern flying-lurker-sleep (state flying-lurker)) (define-extern *ogrecam-sg* skeleton-group) -;;(define-extern flying-lurker-fly object) ;; unknown type +(define-extern flying-lurker-fly (state flying-lurker)) (define-extern *plunger-lurker-sg* skeleton-group) -;;(define-extern plunger-lurker-die object) ;; unknown type -;;(define-extern plunger-lurker-idle object) ;; unknown type -;;(define-extern plunger-lurker-flee object) ;; unknown type -;;(define-extern plunger-lurker-plunge object) ;; unknown type +(define-extern plunger-lurker-die (state plunger-lurker)) +(define-extern plunger-lurker-idle (state plunger-lurker)) +(define-extern plunger-lurker-flee (state plunger-lurker)) +(define-extern plunger-lurker-plunge (state plunger-lurker)) ;; ---------------------- diff --git a/decompiler/config/jak1_ntsc_black_label.jsonc b/decompiler/config/jak1_ntsc_black_label.jsonc index b157978891..c9bb64ad67 100644 --- a/decompiler/config/jak1_ntsc_black_label.jsonc +++ b/decompiler/config/jak1_ntsc_black_label.jsonc @@ -4,6 +4,7 @@ // if you want to filter to only some object names. // it will make the decompiler much faster. "allowed_objects": [], + "banned_objects": ["crates"], //////////////////////////// // CODE ANALYSIS OPTIONS 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 6554a8fbf8..9f19cf059c 100644 --- a/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/anonymous_function_types.jsonc @@ -727,5 +727,15 @@ [2, "(function process int symbol event-message-block object :behavior plat-flip)"] // event ], + "flying-lurker": [ + [37, "(function uint :behavior manipy)"], + [12, "(function uint :behavior manipy)"], + [11, "(function none :behavior process)"] + ], + + "ambient": [ + [29, "(function process int symbol event-message-block object :behavior level-hint)"] + ], + "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index df000da515..48df6c008a 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -425,13 +425,13 @@ ], "entity": [ - ["L483", "vector"], - ["L482", "vector"], - ["L480", "vector"], - ["L479", "vector"], - ["L478", "vector"], - ["L477", "vector"], - ["L476", "vector"], + ["L483", "vector2h"], + ["L482", "vector2h"], + ["L480", "vector2h"], + ["L479", "vector2h"], + ["L478", "vector2h"], + ["L477", "vector2h"], + ["L476", "vector2h"], ["L475", "vector4w"], ["L474", "vector4w"], ["L473", "vector4w"], @@ -595,6 +595,23 @@ ["L263", "float", true] ], + "flying-lurker": [ + ["L197", "(pointer uint32)", 26], + ["L187", "vector"] + ], + + "ambient": [ + ["L326", "vector2h"], + ["L322", "vector2h"], + ["L321", "vector2h"], + ["L324", "vector2h"], + ["L323", "vector2h"] + ], + + "hint-control": [ + ["L45", "(array task-hint-control-group)"] + ], + // please do not add things after this entry! git is dumb. "object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc index b9311ee538..03fc731a29 100644 --- a/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/stack_structures.jsonc @@ -847,7 +847,7 @@ "find-ground-and-draw-shadow": [ [16, "vector"], [32, "vector"], - [48, "bone"] // what a guess! + [48, "collide-tri-result"] ], "(method 20 collide-cache)": [ @@ -1199,7 +1199,7 @@ "(code done auto-save)": [ [16, "event-message-block"] ], - + "update-time-of-day": [ [16, "(array float)"] // TODO - broken! ], @@ -1473,7 +1473,7 @@ "birth-func-ground-orient": [ [16, "vector"], - [32, "bone"], + [32, "collide-tri-result"], [128, "vector"], [144, "quaternion"], [160, "quaternion"] @@ -1568,7 +1568,7 @@ "hopper-find-ground": [ [16, "vector"], - [32, "bone"] + [32, "collide-tri-result"] ], "blocking-plane-init-by-other": [ @@ -1854,6 +1854,43 @@ "(method 11 wall-plat)": [ [16, "vector"] ], + + "(code plunger-lurker-plunge)": [[16, "event-message-block"]], + "(event flying-lurker-fly)": [[16, "event-message-block"]], + "(trans flying-lurker-fly)": [[16, "event-message-block"]], + "flying-lurker-handler": [[16, "event-message-block"]], + "flying-lurker-play-intro": [[16, "event-message-block"]], + "(code flying-lurker-start)": [[16, "event-message-block"]], + "(event flying-lurker-clone)": [[16, "event-message-block"]], + "(event flying-lurker-idle)": [[16, "event-message-block"]], + "(code flying-lurker-idle)": [[16, "event-message-block"]], + "flying-lurker-calc-speed": [ + [16, "vector"], + [32, "vector"] + ], + "(method 20 flying-lurker)": [ + [16, "collide-mesh-cache-tri"], + [112, "vector"], + [128, "vector"], + [144, "bounding-box"], + [176, "vector"] + ], + "flying-lurker-rotate": [ + [16, "matrix"], + [80, "matrix"], + [144, "vector"], + [160, "vector"] + ], + + "(method 18 collide-cache)": [[16, "collide-cache-prim"]], + + "kill-current-level-hint": [[16, "event-message-block"]], + "(exit level-hint-sidekick)": [[16, "event-message-block"]], + "(method 14 level-hint)": [[16, "font-context"]], + "(code level-hint-error)": [[16, "font-context"]], + "ambient-type-hint": [[16, "font-context"]], + "ambient-type-sound": [[32, "sound-spec"]], + "ambient-type-sound-loop": [[16, "sound-spec"]], "placeholder-do-not-add-below!": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 1c8400d5e9..0c1103744d 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -2592,6 +2592,10 @@ [79, "v1", "int"] ], + "(method 27 entity-ambient)": [ + [[15, 250], "s5", "symbol"] + ], + "time-of-day-update": [ [[0, 999], "s6", "time-of-day-proc"] ], @@ -2703,7 +2707,7 @@ ], "manipy-init": [[143, "a0", "collide-shape"]], - + "forall-particles-with-key-runner": [ [32, "s3", "(inline-array sparticle-cpuinfo)"], [42, "s3", "(inline-array sparticle-cpuinfo)"] @@ -3067,5 +3071,113 @@ [50, "f26", "float"] ], + "(code plunger-lurker-plunge)": [ + [[76, 299], "s5", "othercam"], + [80, "gp", "handle"], + [88, "gp", "handle"], + [109, "gp", "handle"], + [176, "gp", "handle"], + [151, "gp", "handle"], + [164, "gp", "handle"], + [188, "gp", "handle"] + ], + + "(code plunger-lurker-flee)": [ + [10, "v1", "art-joint-anim"], + [60, "v1", "art-joint-anim"] + ], + + "(code plunger-lurker-idle)": [ + [10, "v1", "art-joint-anim"] + ], + + "(code flying-lurker-idle)": [ + [92, "v1", "art-joint-anim"] + ], + + "(code flying-lurker-fly)": [ + [56, "v1", "art-joint-anim"], + [110, "v1", "float"] + ], + + "(code flying-lurker-start)": [ + [36, "v1", "float"] + ], + + "(method 18 collide-cache)": [ + [44, "v1", "collide-shape-prim-sphere"], + [16, "s3", "collide-cache-prim"], + [21, "s3", "collide-cache-prim"], + [25, "s3", "collide-cache-prim"], + [43, "s3", "collide-cache-prim"], + [62, "s3", "(inline-array collide-cache-prim)"] + ], + + "flying-lurker-play-intro": [ + [[106, 299], "s5", "othercam"], + [110, "gp", "handle"], + [118, "gp", "handle"], + [139, "gp", "handle"], + [160, "gp", "handle"], + [173, "gp", "handle"], + [207, "gp", "handle"], + [219, "gp", "handle"] + ], + + "clone-anim-once": [ + [[19, 73], "s5", "process-drawable"], + [50, "s4", "collide-shape"], + [109, "v1", "manipy"] + ], + + "level-hint-task-process": [ + ["_stack_", 16, "res-tag"] + ], + + "kill-current-level-hint": [ + [[13, 33], "s4", "level-hint"] + ], + + "level-hint-init-by-other": [ + [[54, 75], "a0", "string"], + [93, "a0", "string"] + ], + + "(method 17 drawable-inline-array-ambient)": [ + [1, "v1", "drawable-ambient"], + [4, "v1", "drawable-ambient"] + ], + + "ambient-type-sound-loop": [ + [5, "a0", "symbol"], + [[24, 35], "s3", "(pointer res-tag)"] + ], + + "ambient-type-light": [ + [38, "v1", "(inline-array vector)"], + [43, "v1", "(inline-array vector)"] + ], + "ambient-type-dark": [ + [38, "v1", "(inline-array vector)"], + [43, "v1", "(inline-array vector)"] + ], + "ambient-type-weather-off": [ + [38, "v1", "(inline-array vector)"], + [43, "v1", "(inline-array vector)"] + ], + + "level-hint-displayed?": [ + [[4, 7], "a0", "level-hint"], + [12, "a0", "level-hint"], + [14, "a0", "level-hint"] + ], + + "ambient-type-sound": [ + [21, "v1", "(pointer float)"], + [28, "v1", "(pointer float)"], + ["_stack_", 112, "res-tag"], + [57, "v0", "symbol"] + ], + "placeholder-do-not-add-below": [] } diff --git a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc index d1fb71d1c9..b4ed0b80bf 100644 --- a/decompiler/config/jak1_ntsc_black_label/var_names.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/var_names.jsonc @@ -3260,7 +3260,7 @@ "debug-menu-context-grab-joypad": { "args":["menu", "callback-arg", "callback-func"] }, - + "debug-menu-context-default-selection": { "args": ["ctxt", "keep-current"], "vars": { @@ -3356,27 +3356,27 @@ "s5-1": ["s5-1", "handle"] } }, - + "draw-percent-bar": { "vars": { "v1-3": ["v1-3", "dma-packet"] } }, - + "(dummy-17 progress)": { "vars": { "v1-20": ["v1-20", "dma-packet"], "v1-81": ["v1-81", "dma-packet"] } }, - + "make-current-level-available-to-progress": { "vars": { "a0-0": "cur-lev", "v1-7": "lev-idx" } }, - + "make-levels-with-tasks-available-to-progress": { "vars": { "gp-0": "i", @@ -3384,7 +3384,7 @@ "s5-0": "tasks" } }, - + "get-next-task-up": { "args": ["cur-task-idx", "lev-idx"] }, @@ -3397,7 +3397,7 @@ "get-next-level-down": { "args": ["lev-idx"] }, - + "calculate-completion": { "args": ["the-progress"], "vars": { @@ -3439,7 +3439,7 @@ "a1-1": ["a1-1", "game-text-id"] } }, - + "(post progress-debug)": { "vars": { "v1-7": ["v1-7", "dma-packet"], @@ -3448,7 +3448,7 @@ "v1-34": ["v1-34", "dma-packet"] } }, - + "voicebox-track": { "vars": { "a0-1": "target" @@ -3461,5 +3461,54 @@ } }, + "(code plunger-lurker-plunge)": { + "vars": { + "gp-1": ["gp-1", "handle"], + "s5-0": ["s5-0", "othercam"] + } + }, + + "flying-lurker-play-intro": { + "vars": { + "gp-1": ["gp-1", "handle"] + } + }, + + "(code flying-lurker-start)": { + "vars": { + "v1-9": ["v1-9", "float"] + } + }, + + "(code flying-lurker-fly)": { + "vars": { + "v1-42": ["v1-42", "float"] + } + }, + + "(method 14 level-group)": { + "vars": { + "s1-1": ["s1-1", "process-drawable"] + } + }, + + "level-hint-displayed?": { + "vars": { + "a0-1": ["a0-1", "level-hint"] + } + }, + + "level-hint-init-by-other": { + "vars": { + "a0-6": ["a0-6", "string"] + } + }, + + "(method 27 entity-ambient)": { + "vars": { + "s5-0": ["s5-0", "symbol"] + } + }, + "aaaaaaaaaaaaaaaaaaaaaaa": {} } diff --git a/decompiler/util/data_decompile.cpp b/decompiler/util/data_decompile.cpp index 22bdb05623..d8df32246a 100644 --- a/decompiler/util/data_decompile.cpp +++ b/decompiler/util/data_decompile.cpp @@ -932,6 +932,15 @@ goos::Object decompile_value(const TypeSpec& type, u64 value; memcpy(&value, bytes.data(), 8); return pretty_print::to_symbol(fmt::format("#x{:x}", value)); + } else if (ts.tc(TypeSpec("int64"), type)) { + assert(bytes.size() == 8); + s64 value; + memcpy(&value, bytes.data(), 8); + if (value > 100) { + return pretty_print::to_symbol(fmt::format("#x{:x}", value)); + } else { + return pretty_print::to_symbol(fmt::format("{}", value)); + } } else if (type == TypeSpec("meters")) { assert(bytes.size() == 4); float value; diff --git a/game/system/newpad.cpp b/game/system/newpad.cpp index 94d7011d91..312cd1eabd 100644 --- a/game/system/newpad.cpp +++ b/game/system/newpad.cpp @@ -90,14 +90,18 @@ void OnKeyRelease(int key) { static int CheckPadIdx(int pad) { if (pad < 0 || pad > CONTROLLER_COUNT) { - lg::error("Invalid pad {}, returning pad 0", pad); + lg::error("Invalid pad {}", pad); + return -1; } - return 0; + return pad; } // returns 1 if button is pressed. returns 0 if invalid or not pressed. int IsPressed(MappingInfo& mapping, Button button, int pad = 0) { - auto key = mapping.pad_mapping[CheckPadIdx(pad)][(int)button]; + if (CheckPadIdx(pad) == -1) { + return 0; + } + auto key = mapping.pad_mapping[pad][(int)button]; if (key == -1) return 0; auto& keymap = mapping.buffer_mode ? g_buffered_key_status : g_key_status; @@ -109,8 +113,9 @@ int IsPressed(MappingInfo& mapping, Button button, int pad = 0) { // map a button on a pad to a key void MapButton(MappingInfo& mapping, Button button, int pad, int key) { // check if pad is valid. dont map buttons with invalid pads. - if (CheckPadIdx(pad) != pad) + if (CheckPadIdx(pad) == -1) { return; + } mapping.pad_mapping[pad][(int)button] = key; } diff --git a/goal_src/engine/ambient/ambient.gc b/goal_src/engine/ambient/ambient.gc index 87f73ea89e..fde6ca7a41 100644 --- a/goal_src/engine/ambient/ambient.gc +++ b/goal_src/engine/ambient/ambient.gc @@ -5,11 +5,1797 @@ ;; name in dgo: ambient ;; dgos: GAME, ENGINE -(defmethod birth-ambient! entity-ambient ((obj entity-ambient)) - ;; TODO stub + +;; definition for method 8 of type drawable-ambient +;; INFO: Return type mismatch int vs drawable-ambient. +(defmethod + mem-usage + drawable-ambient + ((obj drawable-ambient) (arg0 memory-usage-block) (arg1 int)) + (set! (-> arg0 length) (max 50 (-> arg0 length))) + (set! (-> arg0 data 49 name) "ambient") + (+! (-> arg0 data 49 count) 1) + (let ((v1-6 (asize-of obj))) + (+! (-> arg0 data 49 used) v1-6) + (+! (-> arg0 data 49 total) (logand -16 (+ v1-6 15))) + ) + (mem-usage (-> obj ambient) arg0 (logior arg1 128)) + (the-as drawable-ambient 0) + ) + +;; definition for method 8 of type drawable-inline-array-ambient +;; INFO: Return type mismatch int vs drawable-inline-array-ambient. +(defmethod + mem-usage + drawable-inline-array-ambient + ((obj drawable-inline-array-ambient) (arg0 memory-usage-block) (arg1 int)) + (set! (-> arg0 length) (max 1 (-> arg0 length))) + (set! (-> arg0 data 0 name) (symbol->string 'drawable-group)) + (+! (-> arg0 data 0 count) 1) + (let ((v1-7 32)) + (+! (-> arg0 data 0 used) v1-7) + (+! (-> arg0 data 0 total) (logand -16 (+ v1-7 15))) + ) + (dotimes (s3-0 (-> obj length)) + (mem-usage (-> obj data s3-0) arg0 arg1) + ) + (the-as drawable-inline-array-ambient 0) + ) + +;; definition for symbol *hint-semaphore*, type (pointer level-hint) +(define *hint-semaphore* (the-as (pointer level-hint) #f)) + +;; definition for function level-hint-process-cmd +(defun level-hint-process-cmd ((arg0 (pointer int32)) (arg1 int) (arg2 int)) + (let ((v1-2 (-> arg0 arg1)) + (gp-0 (+ arg1 1)) + ) + (cond + ((< gp-0 arg2) + (let ((a0-2 (-> arg0 gp-0)) + (a1-2 v1-2) + ) + (cond + ((zero? a1-2) + (if (task-known? (the-as game-task a0-2)) + (set! gp-0 -1) + ) + ) + ((= a1-2 1) + (if (not (task-known? (the-as game-task a0-2))) + (set! gp-0 -1) + ) + ) + ((= a1-2 2) + (if (nonzero? (get-task-status (the-as game-task a0-2))) + (set! gp-0 -1) + ) + ) + ((= a1-2 3) + (if + (!= + (get-task-status (the-as game-task a0-2)) + (task-status need-introduction) + ) + (set! gp-0 -1) + ) + ) + ((= a1-2 4) + (if + (!= + (get-task-status (the-as game-task a0-2)) + (task-status need-reminder) + ) + (set! gp-0 -1) + ) + ) + ((= a1-2 5) + (if + (!= + (get-task-status (the-as game-task a0-2)) + (task-status need-reminder-a) + ) + (set! gp-0 -1) + ) + ) + ((= a1-2 13) + (let ((v1-15 (get-task-status (the-as game-task a0-2)))) + (if (or (< (the-as int v1-15) 2) (< 4 (the-as int v1-15))) + (set! gp-0 -1) + ) + ) + ) + ((= a1-2 6) + (if + (!= + (get-task-status (the-as game-task a0-2)) + (task-status need-reward-speech) + ) + (set! gp-0 -1) + ) + ) + ((= a1-2 7) + (close-specific-task! (the-as game-task a0-2) (task-status need-hint)) + ) + ((= a1-2 8) + (close-specific-task! + (the-as game-task a0-2) + (task-status need-introduction) + ) + ) + ((= a1-2 9) + (close-specific-task! + (the-as game-task a0-2) + (task-status need-reminder) + ) + ) + ((= a1-2 10) + (close-specific-task! + (the-as game-task a0-2) + (task-status need-reminder-a) + ) + ) + ((= a1-2 11) + (close-specific-task! + (the-as game-task a0-2) + (task-status need-reward-speech) + ) + ) + ((= a1-2 12) + (close-specific-task! + (the-as game-task a0-2) + (task-status need-resolution) + ) + ) + (else + (format #t "Unknown hint command ~D~%" v1-2) + ) + ) + ) + ) + (else + (format #t "Missing task ID for hint command ~S~%" (cond + ((= v1-2 13) + "if-at-most-need-reminder-a" + ) + ((= v1-2 12) + "close-need-resolution" + ) + ((= v1-2 11) + "close-need-reward-speech" + ) + ((= v1-2 10) + "close-need-reminder-a" + ) + ((= v1-2 9) + "close-need-reminder" + ) + ((= v1-2 8) + "close-need-introduction" + ) + ((= v1-2 7) + "close-need-hint" + ) + ((= v1-2 6) + "if-need-reward-speech" + ) + ((= v1-2 5) + "if-need-reminder-a" + ) + ((= v1-2 4) + "if-need-reminder" + ) + ((= v1-2 3) + "if-need-introduction" + ) + ((= v1-2 2) + "if-resolved" + ) + ((= v1-2 1) + "if-known" + ) + ((zero? v1-2) + "if-unknown" + ) + (else + "*unknown*" + ) + ) + ) + ) + ) + gp-0 + ) + ) + +;; definition for function level-hint-task-process +;; Used lq/sq +(defun level-hint-task-process ((arg0 entity) (arg1 uint128) (arg2 string)) + (local-vars (sv-16 res-tag)) + (let ((gp-0 (res-lump-value arg0 'text-id int :default arg1)) + (s5-0 0) + ) + (cond + ((can-hint-be-played? gp-0 arg0 arg2) + (set! sv-16 (new 'static 'res-tag)) + (let + ((s4-1 + ((method-of-type res-lump get-property-data) + arg0 + 'cmds + 'exact + -1000000000.0 + (the-as pointer #f) + (& sv-16) + *res-static-buf* + ) + ) + ) + (when s4-1 + (while (and (>= s5-0 0) (< s5-0 (the-as int (-> sv-16 elt-count)))) + (set! + s5-0 + (level-hint-process-cmd + (the-as (pointer int32) s4-1) + s5-0 + (the-as int (-> sv-16 elt-count)) + ) + ) + (if (>= s5-0 0) + (set! s5-0 (+ s5-0 1)) + ) + ) + ) + ) + 0 + ) + (else + (set! s5-0 -1) + ) + ) + (cond + ((>= s5-0 0) + (empty) + gp-0 + ) + (else + -1 + ) + ) + ) + ) + +;; definition for function level-hint-surpress! +;; INFO: Return type mismatch int vs none. +(defun level-hint-surpress! () + (set! (-> *game-info* hint-play-time) (-> *display* base-frame-counter)) + 0 (none) ) -;; TODO - for assistant-firecanyon -(define-extern level-hint-displayed? (function symbol)) -(define-extern can-grab-display? (function process-taskable symbol)) +;; definition for function can-grab-display? +(defun can-grab-display? ((arg0 process-taskable)) + (let ((v1-2 (handle->process (-> *game-info* display-text-handle)))) + (when + (and + (or + (not v1-2) + (= v1-2 arg0) + (>= + (- (-> *display* base-frame-counter) (-> *game-info* display-text-time)) + 30 + ) + ) + (and + *target* + (!= (-> *target* next-state name) 'target-look-around) + (zero? (logand (-> *target* state-flags) #x8008)) + (= *master-mode* 'game) + ) + ) + (set! (-> *game-info* display-text-handle) (process->handle arg0)) + (set! (-> *game-info* display-text-time) (-> *display* base-frame-counter)) + #t + ) + ) + ) + +;; definition for function level-hint-displayed? +;; INFO: Return type mismatch basic vs symbol. +(defun level-hint-displayed? ((arg0 symbol)) + (let* ((v1-0 *hint-semaphore*) + (a0-1 (the-as level-hint (if v1-0 + (the-as level-hint (-> v1-0 0 self)) + ) + ) + ) + ) + (the-as + symbol + (and + a0-1 + (and + (= (-> a0-1 next-state name) 'level-hint-normal) + (not (dummy-15 a0-1)) + ) + ) + ) + ) + ) + +;; definition for function level-hint-spawn +;; INFO: Return type mismatch int vs none. +(define-extern level-hint-init-by-other (function game-text-id string entity none :behavior level-hint)) +(defun + level-hint-spawn + ((arg0 game-text-id) + (arg1 string) + (arg2 entity) + (arg3 process-tree) + (arg4 game-task) + ) + (if (< (the-as uint 1) (the-as uint arg4)) + (close-specific-task! arg4 (task-status need-hint)) + ) + (let ((s3-1 (level-hint-task-process arg2 (the-as uint128 arg0) arg1))) + (when (!= s3-1 -1) + (kill-current-level-hint '() '() 'exit) + (let ((s2-0 (get-process *default-dead-pool* level-hint #x4000))) + (when s2-0 + (let ((t9-4 (method-of-type level-hint activate))) + (t9-4 + (the-as level-hint s2-0) + arg3 + 'level-hint + (the-as pointer #x70004000) + ) + ) + (run-now-in-process s2-0 level-hint-init-by-other s3-1 arg1 arg2) + (-> s2-0 ppointer) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for function ambient-hint-spawn +;; INFO: Return type mismatch (pointer process) vs object. +(define-extern ambient-hint-init-by-other (function string vector symbol none :behavior level-hint)) +(defun + ambient-hint-spawn + ((arg0 string) (arg1 vector) (arg2 process-tree) (arg3 symbol)) + (case arg3 + (('camera) + (kill-current-level-hint '() '() 'exit) + ) + ) + (the-as + object + (and + (not *hint-semaphore*) + (let ((s2-0 (get-process *default-dead-pool* level-hint #x4000))) + (when s2-0 + (let ((t9-2 (method-of-type level-hint activate))) + (t9-2 + (the-as level-hint s2-0) + arg2 + 'level-hint + (the-as pointer #x70004000) + ) + ) + (run-now-in-process s2-0 ambient-hint-init-by-other arg0 arg1 arg3) + (-> s2-0 ppointer) + ) + ) + ) + ) + ) + +;; definition for function kill-current-level-hint +;; INFO: Return type mismatch int vs none. +(defun kill-current-level-hint ((arg0 pair) (arg1 pair) (arg2 symbol)) + (with-pp + (when *hint-semaphore* + (let ((s4-0 (ppointer->process *hint-semaphore*))) + (when + (and + (or (null? arg0) (member (-> (the-as level-hint s4-0) mode) arg0)) + (not (member (-> (the-as level-hint s4-0) mode) arg1)) + ) + (let ((a1-4 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-4 from) pp) + (set! (-> a1-4 num-params) 0) + (set! (-> a1-4 message) arg2) + (send-event-function (the-as process s4-0) a1-4) + ) + ) + ) + ) + 0 + (none) + ) + ) + +;; definition for function level-hint-init-by-other +;; INFO: Return type mismatch int vs none. +(define-extern level-hint-sidekick (state string level-hint)) +(define-extern level-hint-normal (state level-hint)) +(defbehavior + level-hint-init-by-other level-hint + ((arg0 game-text-id) (arg1 string) (arg2 entity)) + (mark-text-as-seen *game-info* arg0) + (set! (-> self text-id-to-display) arg0) + (set! (-> self sound-to-play) arg1) + (set! (-> self total-time) 0) + (set! (-> self total-off-time) 0) + (set! (-> self last-time) (-> *display* base-frame-counter)) + (set! *hint-semaphore* (the-as (pointer level-hint) (process->ppointer self))) + (push-setting! + *setting-control* + self + (the-as (function object object object object object) 'hint) + (process->ppointer self) + 0.0 + 0 + ) + (set! (-> self voicebox) (the-as handle #f)) + (let ((s5-1 (res-lump-struct arg2 'play-mode structure)) + (a0-6 + (the-as + string + ((method-of-type res-lump get-property-struct) + arg2 + 'sound-name + 'interp + -1000000000.0 + (-> self sound-to-play) + (the-as (pointer res-tag) #f) + *res-static-buf* + ) + ) + ) + ) + (if (and (not s5-1) a0-6) + (set! + s5-1 + (if + (or + (and (= (-> a0-6 data 0) 115) (= (-> a0-6 data 1) 97)) + (and (= (-> a0-6 data 0) 97) (= (-> a0-6 data 1) 115)) + ) + 'voicebox + 'sidekick + ) + ) + ) + (set! (-> self mode) (the-as symbol s5-1)) + (if (or (= s5-1 'sidekick) (= s5-1 'voicebox)) + (go level-hint-sidekick a0-6) + ) + ) + (go level-hint-normal) + 0 + (none) + ) + +;; definition for function ambient-hint-init-by-other +;; INFO: Return type mismatch int vs none. +(define-extern level-hint-ambient-sound (state string level-hint)) +(defbehavior + ambient-hint-init-by-other level-hint + ((arg0 string) (arg1 vector) (arg2 symbol)) + (set! (-> self sound-to-play) arg0) + (set! (-> self total-time) 0) + (set! (-> self total-off-time) 0) + (set! (-> self last-time) (-> *display* base-frame-counter)) + (set! (-> self trans) arg1) + (set! *hint-semaphore* (the-as (pointer level-hint) (process->ppointer self))) + (push-setting! + *setting-control* + self + (the-as (function object object object object object) 'hint) + (process->ppointer self) + 0.0 + 0 + ) + (set! (-> self mode) arg2) + (if (or (= arg2 'camera) (= arg2 'ambient) (= arg2 'stinger)) + (push-setting! + *setting-control* + self + (the-as (function object object object object object) 'ambient) + (process->ppointer self) + 0.0 + 0 + ) + ) + (copy-settings-from-target! *setting-control*) + (set! + (-> self event-hook) + (lambda :behavior level-hint + ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (when (or (= v1-0 'die) (= v1-0 'exit)) + (if (= (ppointer->process *hint-semaphore*) self) + (set! *hint-semaphore* (the-as (pointer level-hint) #f)) + ) + (deactivate self) + ) + ) + ) + ) + ) + (go level-hint-ambient-sound arg0) + 0 + (none) + ) + +;; definition for method 14 of type level-hint +;; INFO: Return type mismatch int vs none. +(defmethod print-text level-hint ((obj level-hint)) + (when (!= *common-text* #f) + (let + ((s5-0 + (new + 'stack + 'font-context + *font-default-matrix* + 56 + 160 + 0.0 + (font-color default) + (font-flags shadow kerning) + ) + ) + ) + (let ((v1-3 s5-0)) + (set! (-> v1-3 width) (the float 400)) + ) + (let ((v1-4 s5-0)) + (set! (-> v1-4 height) (the float 96)) + ) + (set! (-> s5-0 flags) (font-flags shadow kerning middle large)) + (print-game-text + (lookup-text! *common-text* (-> obj text-id-to-display) #f) + s5-0 + #f + 128 + 22 + ) + ) + ) + 0 + (none) + ) + +;; definition for method 15 of type level-hint +(defmethod dummy-15 level-hint ((obj level-hint)) + (and + (!= (-> obj next-state name) 'level-hint-sidekick) + (< 1500 (-> obj total-time)) + ) + ) + +;; failed to figure out what this is: +(define-extern level-hint-exit (state level-hint)) +(define-extern level-hint-error (state string string level-hint)) +(defstate level-hint-normal (level-hint) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'exit) + (go level-hint-exit) + ) + ((= v1-0 'die) + (deactivate self) + ) + ) + ) + ) + ) + :exit + (behavior () + (if (= (ppointer->process *hint-semaphore*) self) + (set! *hint-semaphore* (the-as (pointer level-hint) #f)) + ) + (none) + ) + :code + (behavior () + (cond + ((= (-> self text-id-to-display) (game-text-id zero)) + (if *debug-segment* + (go level-hint-error "UNKNOWN TEXT ID" "") + ) + ) + (else + (while (>= 2400 (-> self total-time)) + (hide-bottom-hud) + (suspend) + (cond + ((and + (bottom-hud-hidden?) + (not (paused?)) + (not (movie?)) + (= *master-mode* 'game) + (or (not *target*) (!= (-> *target* cam-user-mode) 'look-around)) + (not (-> *hud-parts* money-all)) + ) + (print-text self) + (+! + (-> self total-time) + (- (-> *display* base-frame-counter) (-> self last-time)) + ) + (set! (-> self last-time) (-> *display* base-frame-counter)) + ) + (else + (+! + (-> self total-off-time) + (- (-> *display* base-frame-counter) (-> self last-time)) + ) + (if (or (< 1800 (-> self total-time)) (< 3000 (-> self total-off-time))) + (go level-hint-exit) + ) + ) + ) + (set! (-> self last-time) (-> *display* base-frame-counter)) + ) + ) + ) + (go level-hint-exit) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate level-hint-sidekick (level-hint) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'exit) + (when (nonzero? (-> self sound-id)) + (sound-stop (-> self sound-id)) + (set! (-> self sound-id) (new 'static 'sound-id)) + 0 + ) + (go level-hint-exit) + ) + ((= v1-0 'die) + (deactivate self) + ) + ) + ) + ) + ) + :exit + (behavior () + (if (nonzero? (-> self sound-id)) + (sound-stop (-> self sound-id)) + ) + (clear-pending-settings-from-process *setting-control* self 'music-volume) + (clear-pending-settings-from-process *setting-control* self 'sfx-volume) + (clear-pending-settings-from-process *setting-control* self 'dialog-volume) + (if (= (ppointer->process *hint-semaphore*) self) + (set! *hint-semaphore* (the-as (pointer level-hint) #f)) + ) + (let ((a1-3 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-3 from) self) + (set! (-> a1-3 num-params) 0) + (set! (-> a1-3 message) 'die) + (send-event-function (handle->process (-> self voicebox)) a1-3) + ) + (none) + ) + :code + (behavior ((arg0 string)) + (when + (and + (-> *setting-control* current play-hints) + (< 0.0 (-> *setting-control* current dialog-volume)) + ) + (case (-> self mode) + (('voicebox) + (if *target* + (set! + (-> self voicebox) + (ppointer->handle (voicebox-spawn *target* (target-pos 0))) + ) + ) + ) + ) + (while (handle->process (-> *game-info* auto-save-proc)) + (suspend) + ) + (while (not *sound-player-enable*) + (suspend) + ) + (let ((s5-1 sound-play-by-name) + (s4-1 string->sound-name) + ) + (format (clear *temp-string*) "spool-~S" arg0) + (let + ((s5-2 + (s5-1 + (s4-1 *temp-string*) + (new-sound-id) + 1024 + 0 + 0 + (the-as uint 1) + (the-as vector #t) + ) + ) + ) + (set! (-> self sound-id) s5-2) + (let ((s4-3 (-> *display* base-frame-counter))) + (while + (and + (!= (current-str-id) s5-2) + (< (- (-> *display* base-frame-counter) s4-3) 1500) + ) + (suspend) + ) + ) + (cond + ((= (current-str-id) s5-2) + (push-setting! + *setting-control* + self + (the-as (function object object object object object) 'music-volume) + 'rel + (-> *setting-control* current music-volume-movie) + 0 + ) + (push-setting! + *setting-control* + self + (the-as (function object object object object object) 'sfx-volume) + 'rel + (-> *setting-control* current sfx-volume-movie) + 0 + ) + (push-setting! + *setting-control* + self + (the-as (function object object object object object) 'dialog-volume) + 'rel + (-> *setting-control* current dialog-volume-hint) + 0 + ) + (while (= (current-str-id) s5-2) + (suspend) + ) + ) + (else + (go level-hint-error "NO SOUND " arg0) + ) + ) + ) + ) + ) + (go level-hint-exit) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate level-hint-ambient-sound (level-hint) + :event + (-> level-hint-sidekick event) + :exit + (behavior () + (if (nonzero? (-> self sound-id)) + (sound-stop (-> self sound-id)) + ) + (clear-pending-settings-from-process *setting-control* self 'music-volume) + (clear-pending-settings-from-process *setting-control* self 'sfx-volume) + (if (= (ppointer->process *hint-semaphore*) self) + (set! *hint-semaphore* (the-as (pointer level-hint) #f)) + ) + (none) + ) + :code + (behavior ((arg0 string)) + (while (not *sound-player-enable*) + (suspend) + ) + (cond + ((-> self trans) + (let ((s5-0 sound-play-by-name) + (s4-0 string->sound-name) + ) + (format (clear *temp-string*) "spool-~S" arg0) + (set! + (-> self sound-id) + (s5-0 + (s4-0 *temp-string*) + (new-sound-id) + 1024 + 1 + 0 + (the-as uint 1) + (-> self trans) + ) + ) + ) + ) + (else + (let ((s5-1 sound-play-by-name) + (s4-2 string->sound-name) + ) + (format (clear *temp-string*) "spool-~S" arg0) + (set! + (-> self sound-id) + (s5-1 + (s4-2 *temp-string*) + (new-sound-id) + 1024 + 0 + 0 + (the-as uint 1) + (the-as vector #t) + ) + ) + ) + ) + ) + (let ((s5-2 (-> *display* base-frame-counter))) + (while + (and + (!= (current-str-id) (-> self sound-id)) + (< (- (-> *display* base-frame-counter) s5-2) 1500) + ) + (suspend) + ) + ) + (cond + ((= (current-str-id) (-> self sound-id)) + (when (or (= (-> self mode) 'stinger) (= (-> self mode) 'camera)) + (push-setting! + *setting-control* + self + (the-as (function object object object object object) 'music-volume) + 'rel + (-> *setting-control* current music-volume-movie) + 0 + ) + (push-setting! + *setting-control* + self + (the-as (function object object object object object) 'sfx-volume) + 'rel + (-> *setting-control* current sfx-volume-movie) + 0 + ) + ) + (while (= (current-str-id) (-> self sound-id)) + (suspend) + ) + ) + (else + (go level-hint-error "NO SOUND " arg0) + ) + ) + (go level-hint-exit) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate level-hint-error (level-hint) + :event + (-> level-hint-normal event) + :code + (behavior ((arg0 string) (arg1 string)) + (clear-pending-settings-from-process *setting-control* self 'hint) + (let ((s4-0 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) s4-0) 300) + (when + (and + *debug-segment* + (not (paused?)) + (not (str-is-playing?)) + (bottom-hud-hidden?) + ) + (let + ((s3-0 + (new + 'stack + 'font-context + *font-default-matrix* + 56 + 160 + 0.0 + (font-color default) + (font-flags shadow kerning) + ) + ) + ) + (let ((v1-7 s3-0)) + (set! (-> v1-7 width) (the float 400)) + ) + (let ((v1-8 s3-0)) + (set! (-> v1-8 height) (the float 96)) + ) + (set! (-> s3-0 flags) (font-flags shadow kerning middle)) + (let ((s2-0 print-game-text)) + (format (clear *temp-string*) "~S~S" arg0 arg1) + (s2-0 *temp-string* s3-0 #f 128 22) + ) + ) + ) + (suspend) + ) + ) + (go level-hint-exit) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate level-hint-exit (level-hint) + :code + (behavior () + (if (= (ppointer->process *hint-semaphore*) self) + (set! *hint-semaphore* (the-as (pointer level-hint) #f)) + ) + (none) + ) + ) + +;; definition for function ambient-type-error +;; INFO: Return type mismatch int vs none. +(defun ambient-type-error ((arg0 drawable-ambient) (arg1 vector)) + (when *display-entity-errors* + (let ((s2-0 (-> arg0 ambient))) + (format + (clear *temp-string*) + "~2j~s art error for ~s ~s" + (res-lump-struct s2-0 'effect-name structure :time 0.0) + (res-lump-struct s2-0 'type structure) + (res-lump-struct s2-0 'name structure) + ) + ) + *temp-string* + (add-debug-text-3d + #t + (bucket-id debug-draw1) + *temp-string* + (-> arg0 bsphere) + (font-color orange-red) + (the-as vector2h #f) + ) + ) + 0 + (none) + ) + +;; definition for function ambient-type-poi +;; INFO: Return type mismatch int vs none. +(defun ambient-type-poi ((arg0 drawable-ambient) (arg1 vector)) + 0 + (none) + ) + +;; definition for function ambient-type-hint +;; INFO: Return type mismatch int vs none. +(defun ambient-type-hint ((arg0 drawable-ambient) (arg1 vector)) + (with-pp + (let + ((s5-0 + (level-hint-task-process + (-> arg0 ambient) + (the-as uint128 0) + (the-as string #f) + ) + ) + ) + (cond + ((zero? s5-0) + (when + (and + *debug-segment* + (not (paused?)) + (not (str-is-playing?)) + (bottom-hud-hidden?) + ) + (let + ((a1-3 + (new + 'stack + 'font-context + *font-default-matrix* + 56 + 160 + 0.0 + (font-color default) + (font-flags shadow kerning) + ) + ) + ) + (let ((v1-5 a1-3)) + (set! (-> v1-5 width) (the float 400)) + ) + (let ((v1-6 a1-3)) + (set! (-> v1-6 height) (the float 96)) + ) + (set! (-> a1-3 flags) (font-flags shadow kerning middle large)) + (print-game-text "AS: UNKNOWN ID" a1-3 #f 128 22) + ) + ) + ) + ((!= s5-0 -1) + (kill-current-level-hint '() '() 'exit) + (let ((s4-0 (get-process *default-dead-pool* level-hint #x4000))) + (when s4-0 + (let ((t9-8 (method-of-type level-hint activate))) + (t9-8 + (the-as level-hint s4-0) + pp + 'level-hint + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s4-0 + level-hint-init-by-other + s5-0 + #f + (-> arg0 ambient) + ) + (-> s4-0 ppointer) + ) + ) + ) + ) + ) + 0 + (none) + ) + ) + +;; definition for function ambient-type-sound +;; INFO: Return type mismatch int vs none. +;; Used lq/sq +(defun ambient-type-sound ((arg0 drawable-ambient) (arg1 vector)) + (local-vars (sv-16 string) (sv-112 res-tag)) + (let* ((s5-0 (-> arg0 ambient)) + (s4-0 (-> s5-0 ambient-data user-uint64 0)) + ) + (when (>= (-> *display* base-frame-counter) (the-as int s4-0)) + (let ((v1-5 (res-lump-data s5-0 'cycle-speed pointer))) + (set! + (-> s5-0 ambient-data user-uint64 0) + (the-as + uint + (+ + (-> *display* base-frame-counter) + (the int (* 300.0 (-> (the-as (pointer float) v1-5) 0))) + (rand-vu-int-count + (the int (* 300.0 (-> (the-as (pointer float) v1-5) 1))) + ) + ) + ) + ) + ) + (when + (< + (the-as uint (- (-> *display* base-frame-counter) (the-as int s4-0))) + (the-as uint 300) + ) + (let + ((f30-0 + (the + float + (rand-vu-int-count (the-as int (-> s5-0 ambient-data user-float 2))) + ) + ) + ) + (set! + sv-16 + (symbol->string (res-lump-struct s5-0 'effect-name symbol :time f30-0)) + ) + (let ((s4-2 (new 'stack 'sound-spec))) + (set! (-> s4-2 sound-name) (string->sound-name sv-16)) + (logior! (-> s4-2 mask) 1) + (set! (-> s4-2 volume) 1024) + (logior! (-> s4-2 mask) 4) + (set! + (-> s4-2 bend) + (the int (* 327.66998 (rand-vu-float-range -100.0 100.0))) + ) + (set! sv-112 (new 'static 'res-tag)) + (let + ((a1-7 + ((method-of-type res-lump get-property-data) + s5-0 + 'effect-param + 'exact + f30-0 + (the-as pointer #f) + (& sv-112) + *res-static-buf* + ) + ) + ) + (if a1-7 + (effect-param->sound-spec + s4-2 + (the-as sound-play-parms a1-7) + (the-as int (-> sv-112 elt-count)) + ) + ) + ) + (when *debug-effect-control* + (format + #t + "(~5D) effect sound ~A ~S " + (-> *display* base-frame-counter) + (res-lump-struct s5-0 'name structure) + sv-16 + ) + (format + #t + "volume: ~f pitch-mod: ~f~%" + (* 0.09765625 (the float (-> s4-2 volume))) + (* 0.000656168 (the float (-> s4-2 pitch-mod))) + ) + ) + (sound-play-by-spec s4-2 (new-sound-id) (-> arg0 bsphere)) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for function ambient-type-sound-loop +;; INFO: Return type mismatch int vs none. +;; Used lq/sq +(defun ambient-type-sound-loop ((arg0 drawable-ambient) (arg1 vector)) + (let* ((s5-0 (-> arg0 ambient)) + (s2-0 + (symbol->string (the-as symbol (-> s5-0 ambient-data user-float 2))) + ) + (s3-0 (the-as object (-> s5-0 ambient-data user-float 1))) + (s4-0 (new 'stack 'sound-spec)) + ) + (set! (-> s4-0 sound-name) (string->sound-name s2-0)) + (logior! (-> s4-0 mask) 1) + (set! (-> s4-0 volume) 1024) + (when (the-as (pointer res-tag) s3-0) + (let ((t9-2 effect-param->sound-spec) + (a0-5 s4-0) + (v1-8 (-> arg0 ambient)) + (a1-2 (-> (the-as (pointer res-tag) s3-0) 0)) + ) + (t9-2 + a0-5 + (the-as sound-play-parms (&+ (-> v1-8 data-base) (-> a1-2 data-offset))) + (the-as int (-> (the-as (pointer res-tag) s3-0) 0 elt-count)) + ) + ) + ) + (sound-play-by-spec + s4-0 + (the-as sound-id (-> s5-0 ambient-data user-float 0)) + (-> arg0 bsphere) + ) + ) + 0 + (none) + ) + +;; definition for function ambient-type-light +;; INFO: Return type mismatch int vs none. +;; Used lq/sq +(defun ambient-type-light ((arg0 drawable-ambient) (arg1 vector)) + (when *target* + (let ((s4-0 (-> arg0 ambient)) + (s5-0 #t) + ) + (let + ((s3-0 + (-> ((method-of-type res-lump lookup-tag-idx) s4-0 'vol 'exact 0.0) lo) + ) + ) + (when (>= (the-as int s3-0) 0) + (let ((s2-0 (the-as uint s3-0)) + (s1-0 (-> s4-0 tag s3-0)) + ) + 0 + (while (= (-> s1-0 name) (-> s4-0 tag s3-0 name)) + (let + ((v1-8 + (the-as + object + (make-property-data + s4-0 + 0.0 + (the-as res-tag-pair s2-0) + (the-as pointer #f) + ) + ) + ) + ) + (set! s5-0 #t) + (countdown (a0-6 (-> s1-0 elt-count)) + (when + (< + (-> arg1 w) + (- + (vector-dot arg1 (-> (the-as (inline-array vector) v1-8) a0-6)) + (-> (the-as (inline-array vector) v1-8) a0-6 w) + ) + ) + (set! s5-0 #f) + (goto cfg-9) + ) + ) + ) + (label cfg-9) + (if s5-0 + (goto cfg-15) + ) + (+! s2-0 1) + (set! s1-0 (-> s4-0 tag s2-0)) + ) + ) + ) + ) + (label cfg-15) + (when s5-0 + ) + ) + ) + 0 + (none) + ) + +;; definition for function ambient-type-dark +;; INFO: Return type mismatch int vs none. +;; Used lq/sq +(defun ambient-type-dark ((arg0 drawable-ambient) (arg1 vector)) + (when *target* + (let ((s4-0 (-> arg0 ambient)) + (s5-0 #t) + ) + (let + ((s3-0 + (-> ((method-of-type res-lump lookup-tag-idx) s4-0 'vol 'exact 0.0) lo) + ) + ) + (when (>= (the-as int s3-0) 0) + (let ((s2-0 (the-as uint s3-0)) + (s1-0 (-> s4-0 tag s3-0)) + ) + 0 + (while (= (-> s1-0 name) (-> s4-0 tag s3-0 name)) + (let + ((v1-8 + (the-as + object + (make-property-data + s4-0 + 0.0 + (the-as res-tag-pair s2-0) + (the-as pointer #f) + ) + ) + ) + ) + (set! s5-0 #t) + (countdown (a0-6 (-> s1-0 elt-count)) + (when + (< + (-> arg1 w) + (- + (vector-dot arg1 (-> (the-as (inline-array vector) v1-8) a0-6)) + (-> (the-as (inline-array vector) v1-8) a0-6 w) + ) + ) + (set! s5-0 #f) + (goto cfg-9) + ) + ) + ) + (label cfg-9) + (if s5-0 + (goto cfg-15) + ) + (+! s2-0 1) + (set! s1-0 (-> s4-0 tag s2-0)) + ) + ) + ) + ) + (label cfg-15) + (if s5-0 + (set! (-> *target* draw secondary-interp) 1.0) + ) + ) + ) + 0 + (none) + ) + +;; definition for function ambient-type-weather-off +;; INFO: Return type mismatch int vs none. +;; Used lq/sq +(defun ambient-type-weather-off ((arg0 drawable-ambient) (arg1 vector)) + (when *target* + (let ((s4-0 (-> arg0 ambient)) + (s5-0 #t) + ) + (let + ((s3-0 + (-> ((method-of-type res-lump lookup-tag-idx) s4-0 'vol 'exact 0.0) lo) + ) + ) + (when (>= (the-as int s3-0) 0) + (let ((s2-0 (the-as uint s3-0)) + (s1-0 (-> s4-0 tag s3-0)) + ) + 0 + (while (= (-> s1-0 name) (-> s4-0 tag s3-0 name)) + (let + ((v1-8 + (the-as + object + (make-property-data + s4-0 + 0.0 + (the-as res-tag-pair s2-0) + (the-as pointer #f) + ) + ) + ) + ) + (set! s5-0 #t) + (countdown (a0-6 (-> s1-0 elt-count)) + (when + (< + (-> arg1 w) + (- + (vector-dot arg1 (-> (the-as (inline-array vector) v1-8) a0-6)) + (-> (the-as (inline-array vector) v1-8) a0-6 w) + ) + ) + (set! s5-0 #f) + (goto cfg-9) + ) + ) + ) + (label cfg-9) + (if s5-0 + (goto cfg-15) + ) + (+! s2-0 1) + (set! s1-0 (-> s4-0 tag s2-0)) + ) + ) + ) + ) + (label cfg-15) + (if s5-0 + (set! *weather-off* #t) + ) + ) + ) + 0 + (none) + ) + +;; definition for function ambient-type-ocean-off +;; INFO: Return type mismatch int vs none. +(defun ambient-type-ocean-off ((arg0 drawable-ambient) (arg1 vector)) + (set! *ocean-off* #t) + 0 + (none) + ) + +;; definition for function ambient-type-ocean-near-off +;; INFO: Return type mismatch int vs none. +(defun ambient-type-ocean-near-off ((arg0 drawable-ambient) (arg1 vector)) + (set! *ocean-near-off* #t) + 0 + (none) + ) + +;; definition for function ambient-type-music +;; INFO: Return type mismatch int vs none. +(defun ambient-type-music ((arg0 drawable-ambient) (arg1 vector)) + (let ((gp-0 (-> arg0 ambient))) + (if (-> gp-0 ambient-data user-object 0) + (set! + (-> *setting-control* default music) + (the-as symbol (-> gp-0 ambient-data user-object 0)) + ) + ) + (when (nonzero? (-> gp-0 ambient-data user-int32 1)) + (let ((f0-0 (res-lump-float gp-0 'priority :default 10.0))) + (when (>= f0-0 (-> *setting-control* default sound-flava-priority)) + (set! + (-> *setting-control* default sound-flava) + (the-as uint (-> gp-0 ambient-data user-int32 1)) + ) + (set! (-> *setting-control* default sound-flava-priority) f0-0) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 17 of type drawable-ambient +;; INFO: Return type mismatch int vs none. +(defmethod + dummy-17 + drawable-ambient + ((obj drawable-ambient) (arg0 sphere) (arg1 int) (arg2 ambient-list)) + (dotimes (s2-0 arg1) + (when (spheres-overlap? arg0 (the-as sphere (-> obj bsphere))) + (set! (-> arg2 items (-> arg2 num-items)) obj) + (+! (-> arg2 num-items) 1) + ) + (&+! obj 32) + ) + 0 + (none) + ) + +;; definition for method 17 of type drawable-inline-array-ambient +;; INFO: Return type mismatch int vs none. +(defmethod + dummy-17 + drawable-inline-array-ambient + ((obj drawable-inline-array-ambient) + (arg0 sphere) + (arg1 int) + (arg2 ambient-list) + ) + (dummy-17 (the-as drawable-ambient (-> obj data)) arg0 (-> obj length) arg2) + 0 + (none) + ) + +;; definition for method 17 of type drawable-tree-ambient +;; INFO: Return type mismatch int vs none. +(defmethod + dummy-17 + drawable-tree-ambient + ((obj drawable-tree-ambient) (arg0 sphere) (arg1 int) (arg2 ambient-list)) + (dummy-17 (-> obj data 0) arg0 (-> obj length) arg2) + 0 + (none) + ) + +;; definition for method 28 of type entity-ambient +;; INFO: Return type mismatch entity-ambient vs none. +;; Used lq/sq +(defmethod birth-ambient! entity-ambient ((obj entity-ambient)) + (set! (-> obj ambient-data quad) (the-as uint128 0)) + (set! (-> obj ambient-data function) ambient-type-error) + (case (res-lump-struct obj 'type structure) + (('sound) + (let ((s5-0 (res-lump-struct obj 'effect-name structure :time 0.0)) + (a0-7 (res-lump-data obj 'cycle-speed pointer)) + ) + (when (and s5-0 a0-7) + (cond + ((>= (-> (the-as (pointer float) a0-7)) 0.0) + (set! (-> obj ambient-data function) ambient-type-sound) + (set! (-> obj ambient-data user-float 2) (the-as float 0)) + (let + ((s5-1 + (-> + ((method-of-type res-lump lookup-tag-idx) + obj + 'effect-name + 'exact + 0.0 + ) + lo + ) + ) + ) + (when (>= (the-as int s5-1) 0) + (let ((s4-0 (the-as uint s5-1)) + (v1-14 (-> obj tag s5-1)) + ) + 0 + (while (= (-> v1-14 name) (-> obj tag s5-1 name)) + (make-property-data + obj + 0.0 + (the-as res-tag-pair s4-0) + (the-as pointer #f) + ) + (set! + (-> obj ambient-data user-float 2) + (the-as + float + (+ (the-as int (-> obj ambient-data user-float 2)) 1) + ) + ) + (+! s4-0 1) + (set! v1-14 (-> obj tag s4-0)) + ) + ) + ) + ) + ) + (else + (set! (-> obj ambient-data user-float 0) (the-as float (new-sound-id))) + (let + ((v1-28 + ((method-of-type res-lump lookup-tag-idx) + obj + 'effect-param + 'exact + 0.0 + ) + ) + ) + (set! + (-> obj ambient-data user-float 1) + (the-as float (if (< (the-as int v1-28) 0) + (the-as (pointer res-tag) #f) + (&-> (-> obj tag) (-> v1-28 lo)) + ) + ) + ) + ) + (set! (-> obj ambient-data user-float 2) (the-as float s5-0)) + (set! (-> obj ambient-data function) ambient-type-sound-loop) + ) + ) + ) + ) + ) + (('poi) + (let ((s5-2 (res-lump-struct obj 'effect-name structure :time 0.0))) + (when (res-lump-value obj 'loc-name-id uint128) + (set! (-> obj ambient-data user-float 2) (the-as float s5-2)) + (set! (-> obj ambient-data function) ambient-type-poi) + ) + ) + ) + (('hint) + (let ((s5-3 (res-lump-struct obj 'effect-name structure :time 0.0))) + (when (res-lump-value obj 'text-id uint128) + (set! (-> obj ambient-data user-float 2) (the-as float s5-3)) + (set! (-> obj ambient-data function) ambient-type-hint) + ) + ) + ) + (('light) + (set! + (-> obj ambient-data user-float 2) + (res-lump-struct obj 'effect-name float :time 0.0) + ) + (set! (-> obj ambient-data function) ambient-type-light) + ) + (('dark) + (set! + (-> obj ambient-data user-float 2) + (res-lump-struct obj 'effect-name float :time 0.0) + ) + (set! (-> obj ambient-data function) ambient-type-dark) + ) + (('weather-off) + (set! + (-> obj ambient-data user-float 2) + (res-lump-struct obj 'effect-name float :time 0.0) + ) + (set! (-> obj ambient-data function) ambient-type-weather-off) + ) + (('ocean-off) + (set! + (-> obj ambient-data user-float 2) + (res-lump-struct obj 'effect-name float :time 0.0) + ) + (set! (-> obj ambient-data function) ambient-type-ocean-off) + ) + (('ocean-near-off) + (set! + (-> obj ambient-data user-float 2) + (res-lump-struct obj 'effect-name float :time 0.0) + ) + (set! (-> obj ambient-data function) ambient-type-ocean-near-off) + ) + (('music) + (set! + (-> obj ambient-data user-float 2) + (res-lump-struct obj 'effect-name float :time 0.0) + ) + (set! (-> obj ambient-data user-float 0) (res-lump-struct obj 'music float)) + (set! (-> obj ambient-data user-float 1) (res-lump-value obj 'flava float)) + (set! (-> obj ambient-data function) ambient-type-music) + ) + ) + (none) + ) + +;; definition for symbol *execute-ambients*, type symbol +(define *execute-ambients* #t) + +;; definition for method 18 of type drawable-ambient +;; INFO: Return type mismatch int vs none. +(defmethod dummy-18 drawable-ambient ((obj drawable-ambient) (arg0 vector)) + ((-> obj ambient ambient-data function) obj arg0) + 0 + (none) + ) + +;; definition (debug) for function ambient-inspect +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; definition for method 27 of type entity-ambient +;; INFO: Return type mismatch int vs none. +;; Used lq/sq +(defmethod draw-debug entity-ambient ((obj entity-ambient)) + (local-vars (sv-16 uint128)) + (let ((gp-0 (-> obj trans)) + (s5-0 (res-lump-struct obj 'type symbol)) + (s3-0 #f) + ) + (cond + ((= s5-0 'sound) + (when *display-ambient-sound-marks* + (add-debug-text-3d + #t + (bucket-id debug-draw1) + (the-as + string + (-> + (the-as + (pointer uint32) + (+ #xff38 (res-lump-struct obj 'effect-name int :time 0.0)) + ) + ) + ) + gp-0 + (font-color white) + (new 'static 'vector2h :y 24) + ) + (set! s3-0 #t) + ) + ) + ((= s5-0 'hint) + (when *display-ambient-hint-marks* + (set! sv-16 (res-lump-value obj 'text-id uint128)) + (let ((s3-2 add-debug-text-3d) + (s2-1 #t) + (s1-1 68) + ) + (format (clear *temp-string*) "TEXT ID #x~X" sv-16) + (s3-2 + s2-1 + (the-as bucket-id s1-1) + *temp-string* + gp-0 + (font-color white) + (new 'static 'vector2h :y 24) + ) + ) + (set! s3-0 #t) + ) + ) + ((= s5-0 'poi) + (when *display-ambient-poi-marks* + (let ((a1-7 (res-lump-value obj 'loc-name-id uint128))) + (when (and (nonzero? a1-7) *common-text*) + (add-debug-text-3d + #t + (bucket-id debug-draw1) + (lookup-text! *common-text* (the-as game-text-id a1-7) #f) + gp-0 + (font-color white) + (new 'static 'vector2h :y 24) + ) + (set! s3-0 #t) + ) + ) + ) + ) + ((= s5-0 'light) + (if *display-ambient-light-marks* + (set! s3-0 #t) + ) + ) + ((= s5-0 'dark) + (if *display-ambient-dark-marks* + (set! s3-0 #t) + ) + ) + ((= s5-0 'weather-off) + (if *display-ambient-weather-off-marks* + (set! s3-0 #t) + ) + ) + ((= s5-0 'ocean-off) + (if *display-ambient-ocean-off-marks* + (set! s3-0 #t) + ) + ) + ((= s5-0 'ocean-near-off) + (if *display-ambient-ocean-near-off-marks* + (set! s3-0 #t) + ) + ) + ((= s5-0 'music) + (if *display-ambient-music-marks* + (set! s3-0 #t) + ) + ) + ) + (when s3-0 + (let ((t9-10 add-debug-sphere) + (a0-11 #t) + (a1-9 67) + (a2-9 gp-0) + (a3-7 (-> gp-0 w)) + (v1-53 s5-0) + ) + (t9-10 a0-11 (the-as bucket-id a1-9) a2-9 a3-7 (the-as rgba (cond + ((= + v1-53 + 'sound + ) + (the-as + uint + #x8000ffff + ) + ) + ((= + v1-53 + 'poi + ) + (the-as + uint + #x80ff8000 + ) + ) + (else + (the-as + uint + #x800000ff + ) + ) + ) + ) + ) + ) + (add-debug-text-3d + #t + (bucket-id debug-draw1) + (res-lump-struct obj 'name string) + gp-0 + (font-color white) + (new 'static 'vector2h :y 8) + ) + (add-debug-text-3d + #t + (bucket-id debug-draw1) + (symbol->string s5-0) + gp-0 + (font-color white) + (new 'static 'vector2h :y 16) + ) + ) + ) + 0 + (none) + ) + + + + diff --git a/goal_src/engine/anim/joint.gc b/goal_src/engine/anim/joint.gc index 8c4c5a8a84..af32fedeee 100644 --- a/goal_src/engine/anim/joint.gc +++ b/goal_src/engine/anim/joint.gc @@ -9,3 +9,7 @@ (define-extern cspace<-matrix-no-push-joint! (function cspace matrix matrix)) ;; TODO - for logic-target (define-extern cspace<-transformq+trans! (function cspace transformq vector matrix)) + + +(define-extern joint-control-copy! (function joint-control joint-control joint-control)) +(define-extern joint-control-remap! (function joint-control art-group art-group pair int string object)) \ No newline at end of file diff --git a/goal_src/engine/collide/collide-cache-h.gc b/goal_src/engine/collide/collide-cache-h.gc index 2bd5cf35b0..8bddb10c62 100644 --- a/goal_src/engine/collide/collide-cache-h.gc +++ b/goal_src/engine/collide/collide-cache-h.gc @@ -72,8 +72,8 @@ (deftype collide-cache-prim (structure) ((prim-core collide-prim-core :inline :offset-assert 0) ;;(extra-quad UNKNOWN 16 :offset-assert 32) - (ccache basic :offset-assert 32) - (prim basic :offset-assert 36) + (ccache collide-cache :offset-assert 32) + (prim collide-shape-prim :offset-assert 36) (first-tri uint16 :offset-assert 40) (num-tris uint16 :offset-assert 42) (unused uint8 4 :offset-assert 44) @@ -87,8 +87,8 @@ :size-assert #x30 :flag-assert #xb00000030 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-9 (_type_ float pointer (pointer collide-cache) float int) float 9) + (dummy-10 (_type_ float pointer (pointer collide-cache) float int) float 10) ) ) @@ -107,30 +107,30 @@ :size-assert #x8670 :flag-assert #x2100008670 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-9 (_type_) none 9) + (dummy-10 (_type_ vector vector float int process collide-mesh-cache-tri int) float 10) (dummy-11 (_type_ collide-using-spheres-params) none 11) - (dummy-12 (_type_ vector float uint process bone uint) float 12) ;; TODO - bone not confirmed + (fill-and-probe-using-y-probe (_type_ vector float uint process collide-tri-result uint) float 12) (dummy-13 (_type_ int uint process-drawable uint) none 13) - (dummy-14 () none 14) + (dummy-14 (_type_ vector vector float int process int) none 14) (dummy-15 (_type_ int) none 15) (dummy-16 (_type_ vector float uint process uint) none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) - (dummy-20 (_type_ vector float uint bone uint) none 20) ;; TODO - bone not confirmed - (dummy-21 () none 21) - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) - (dummy-28 () none 28) - (dummy-29 () none 29) - (dummy-30 () none 30) - (dummy-31 () none 31) - (dummy-32 () none 32) + (initialize (_type_) none 17) + (dummy-18 (_type_ vector vector float int collide-mesh-cache-tri int) float 18) + (probe-using-spheres (_type_) none 19) + (dummy-20 (_type_ vector float uint collide-tri-result uint) float 20) + (dummy-21 (_type_) none 21) + (dummy-22 (_type_) none 22) + (dummy-23 (_type_) none 23) + (dummy-24 (_type_) none 24) + (dummy-25 (_type_) none 25) + (dummy-26 (_type_) none 26) + (dummy-27 (_type_) none 27) + (dummy-28 (_type_) none 28) + (dummy-29 (_type_) none 29) + (dummy-30 (_type_) none 30) + (dummy-31 (_type_) none 31) + (dummy-32 (_type_) none 32) ) ) diff --git a/goal_src/engine/collide/collide-shape-h.gc b/goal_src/engine/collide/collide-shape-h.gc index ec2d7e8a7b..955d761df3 100644 --- a/goal_src/engine/collide/collide-shape-h.gc +++ b/goal_src/engine/collide/collide-shape-h.gc @@ -80,7 +80,6 @@ ) ) -(declare-type collide-shape-prim basic) (deftype collide-overlap-result (structure) ((best-dist float :offset-assert 0) (best-from-prim collide-shape-prim :offset-assert 4) @@ -155,27 +154,27 @@ :size-assert #x48 :flag-assert #x1c00000048 (:methods - (new (symbol type basic uint int) _type_ 0) - (dummy-9 () none 9) - (dummy-10 (_type_ uint) collide-shape-prim 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) - (dummy-15 () none 15) - (dummy-16 () none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) - (dummy-20 () none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) - ) + (new (symbol type basic uint int) _type_ 0) + (dummy-9 () none 9) + (dummy-10 (_type_ uint) collide-shape-prim 10) + (dummy-11 () none 11) + (add-fg-prim-using-box (_type_) none 12) + (add-fg-prim-using-line-sphere (_type_) none 13) + (add-fg-prim-using-y-probe (_type_) none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + ) ) ;; sphere collision diff --git a/goal_src/engine/data/res.gc b/goal_src/engine/data/res.gc index ab0f54f013..59a11933fa 100644 --- a/goal_src/engine/data/res.gc +++ b/goal_src/engine/data/res.gc @@ -927,7 +927,7 @@ This is updated from the entity system used in Crash 2, which had most of these ;; data. This is something like (pointer int32) or (inline-array vector), it should have a size. ;; struct. This will get a GOAL struct or basic. Like a string. ;; value. This will get a value. Possibly even a 128-bit value, though this does not appear to work properly. -;; float. This will get a float. If the value stored is an int, it will converted to a float. +;; float. This will get a float. If the value stored is an int, it will be converted to a float. (defmacro res-lump-data (lump name type &key (tag-ptr (the-as (pointer res-tag) #f)) &key (time -1000000000.0)) "Helper macro to get data from a res-lump without interpolation." @@ -943,13 +943,13 @@ This is updated from the entity system used in Crash 2, which had most of these ) ) -(defmacro res-lump-data-exact (lump name type &key (tag-ptr (the-as (pointer res-tag) #f))) +(defmacro res-lump-data-exact (lump name type &key (tag-ptr (the-as (pointer res-tag) #f)) &key (time 0.0)) "Helper macro to get start of data from a res-lump." `(the-as ,type ((method-of-type res-lump get-property-data) ,lump ,name 'exact - 0.0 + ,time (the-as pointer #f) ,tag-ptr *res-static-buf* @@ -957,12 +957,12 @@ This is updated from the entity system used in Crash 2, which had most of these ) ) -(defmacro res-lump-struct (lump name type &key (tag-ptr (the-as (pointer res-tag) #f))) +(defmacro res-lump-struct (lump name type &key (tag-ptr (the-as (pointer res-tag) #f)) &key (time -1000000000.0)) `(the-as ,type ((method-of-type res-lump get-property-struct) ,lump ,name 'interp - -1000000000.0 + ,time (the-as structure #f) ,tag-ptr *res-static-buf* @@ -970,12 +970,12 @@ This is updated from the entity system used in Crash 2, which had most of these ) ) -(defmacro res-lump-struct-exact (lump name type &key (tag-ptr (the-as (pointer res-tag) #f))) +(defmacro res-lump-struct-exact (lump name type &key (tag-ptr (the-as (pointer res-tag) #f)) &key (time 0.0)) `(the-as ,type ((method-of-type res-lump get-property-struct) ,lump ,name 'exact - 0.0 + ,time (the-as structure #f) ,tag-ptr *res-static-buf* @@ -983,13 +983,13 @@ This is updated from the entity system used in Crash 2, which had most of these ) ) -(defmacro res-lump-value (lump name type &key (tag-ptr (the-as (pointer res-tag) #f)) &key (default (the-as uint128 0))) +(defmacro res-lump-value (lump name type &key (tag-ptr (the-as (pointer res-tag) #f)) &key (default (the-as uint128 0)) &key (time -1000000000.0)) "Helper macro to get a value from a res-lump with no interpolation." `(the-as ,type ((method-of-type res-lump get-property-value) ,lump ,name 'interp - -1000000000.0 + ,time ,default ,tag-ptr *res-static-buf* @@ -997,15 +997,17 @@ This is updated from the entity system used in Crash 2, which had most of these ) ) -(defmacro res-lump-float (lump name &key (tag-ptr (the-as (pointer res-tag) #f)) &key (default 0.0)) +(defmacro res-lump-float (lump name &key (tag-ptr (the-as (pointer res-tag) #f)) &key (default 0.0) &key (time -1000000000.0)) "Helper macro to get a float from a res-lump with no interpolation." `((method-of-type res-lump get-property-value-float) ,lump ,name 'interp - -1000000000.0 + ,time ,default ,tag-ptr *res-static-buf* ) - ) \ No newline at end of file + ) + + diff --git a/goal_src/engine/draw/drawable-ambient-h.gc b/goal_src/engine/draw/drawable-ambient-h.gc index 9ce0142417..3033082fe0 100644 --- a/goal_src/engine/draw/drawable-ambient-h.gc +++ b/goal_src/engine/draw/drawable-ambient-h.gc @@ -14,7 +14,7 @@ :size-assert #x20 :flag-assert #x1300000020 (:methods - (dummy-18 () none 18) + (dummy-18 (_type_ vector) none 18) ) ) @@ -27,7 +27,7 @@ (deftype drawable-inline-array-ambient (drawable-inline-array) ((data drawable-ambient 1 :inline) - (pad uint8 4)) + (pad uint32)) :flag-assert #x1200000044 ) @@ -41,22 +41,22 @@ ) (deftype level-hint (process) - ((text-id-to-display uint32 :offset-assert 112) - (sound-to-play basic :offset-assert 116) - (trans vector :offset-assert 120) + ((text-id-to-display game-text-id :offset-assert 112) + (sound-to-play string :offset-assert 116) + (trans vector :offset-assert 120) (sound-id sound-id :offset-assert 124) - (mode basic :offset-assert 128) - (total-time uint64 :offset-assert 136) - (total-off-time uint64 :offset-assert 144) - (last-time uint64 :offset-assert 152) - (voicebox uint64 :offset-assert 160) + (mode symbol :offset-assert 128) + (total-time int64 :offset-assert 136) + (total-off-time int64 :offset-assert 144) + (last-time int64 :offset-assert 152) + (voicebox handle :offset-assert 160) ) :heap-base #x40 :method-count-assert 16 :size-assert #xa8 :flag-assert #x10004000a8 (:methods - (dummy-14 () none 14) + (print-text (_type_) none 14) (dummy-15 (_type_) symbol 15) ) ) @@ -71,5 +71,4 @@ ) -(define-extern kill-current-level-hint (function pair pair symbol none)) -(define-extern level-hint-spawn (function game-text-id string symbol process-tree int none)) +(define-extern *hint-semaphore* (pointer level-hint)) diff --git a/goal_src/engine/draw/drawable.gc b/goal_src/engine/draw/drawable.gc index e456531b0c..4fe5c5e268 100644 --- a/goal_src/engine/draw/drawable.gc +++ b/goal_src/engine/draw/drawable.gc @@ -541,3 +541,6 @@ ) (none) ) + +(define-extern sphere-in-view-frustum? (function vector symbol)) + diff --git a/goal_src/engine/entity/entity-h.gc b/goal_src/engine/entity/entity-h.gc index 9d8dd21f75..910ddb4f99 100644 --- a/goal_src/engine/entity/entity-h.gc +++ b/goal_src/engine/entity/entity-h.gc @@ -100,7 +100,7 @@ (deftype entity-ambient-data (structure) ((user-object object 3 :offset-assert 0) - (function basic :offset-assert 12) + (function (function drawable-ambient vector none) :offset-assert 12) (quad uint128 :offset 0) (user-uint64 uint64 1 :offset 0) (user-float float 3 :offset 0) @@ -125,12 +125,13 @@ (set! (-> entity-ambient-data-array heap-base) (the-as uint 16)) (deftype entity-ambient (entity) - () + ((ambient-data entity-ambient-data :score 50 :offset 24) ;; added! + ) :method-count-assert 29 :size-assert #x34 :flag-assert #x1d00000034 (:methods - (dummy-27 () none 27) + (draw-debug (_type_) none 27) (birth-ambient! (_type_) none 28) ) ) diff --git a/goal_src/engine/entity/entity.gc b/goal_src/engine/entity/entity.gc index d14fedc1ba..dd62067efa 100644 --- a/goal_src/engine/entity/entity.gc +++ b/goal_src/engine/entity/entity.gc @@ -1015,7 +1015,7 @@ (defun entity-deactivate-handler ((arg0 process) (arg1 entity)) "Handle a deactivation in the entity. - The entity directly stores a process so should remove that after deactivating." + The entity directly stores a process so it should remove that after deactivating." (when (= arg0 (-> arg1 extra process)) (logclear! (-> arg1 extra perm status) (entity-perm-status bit-1 bit-3)) (set! (-> arg1 extra process) #f) diff --git a/goal_src/engine/game/game-h.gc b/goal_src/engine/game/game-h.gc index 3c224116bc..053b47f56e 100644 --- a/goal_src/engine/game/game-h.gc +++ b/goal_src/engine/game/game-h.gc @@ -149,4 +149,7 @@ (declare-type target process-drawable) +(declare-type voicebox process-drawable) + +(defun-extern voicebox-spawn process vector (pointer process)) diff --git a/goal_src/engine/game/game-info-h.gc b/goal_src/engine/game/game-info-h.gc index a622f32a33..1340cf1601 100644 --- a/goal_src/engine/game/game-info-h.gc +++ b/goal_src/engine/game/game-info-h.gc @@ -5,129 +5,6 @@ ; ;; name in dgo: game-info-h ; ;; dgos: GAME, ENGINE -;; List of each task in the game. -;; Each task has a task-control associated with it, see task-control.gc -(defenum game-task - :type uint8 - (none 0) - (complete 1) - (jungle-eggtop 2) - (jungle-lurkerm 3) - (jungle-tower 4) - (jungle-fishgame 5) - (jungle-plant 6) - (jungle-buzzer 7) - (jungle-canyon-end 8) - (jungle-temple-door 9) - (village1-yakow 10) - (village1-mayor-money 11) - (village1-uncle-money 12) - (village1-oracle-money1 13) - (village1-oracle-money2 14) - (beach-ecorocks 15) - (beach-pelican 16) - (beach-flutflut 17) - (beach-seagull 18) - (beach-cannon 19) - (beach-buzzer 20) - (beach-gimmie 21) - (beach-sentinel 22) - (misty-muse 23) - (misty-boat 24) - (misty-warehouse 25) - (misty-cannon 26) - (misty-bike 27) - (misty-buzzer 28) - (misty-bike-jump 29) - (misty-eco-challenge 30) - (village2-gambler-money 31) - (village2-geologist-money 32) - (village2-warrior-money 33) - (village2-oracle-money1 34) - (village2-oracle-money2 35) - (swamp-billy 36) - (swamp-flutflut 37) - (swamp-battle 38) - (swamp-tether-1 39) - (swamp-tether-2 40) - (swamp-tether-3 41) - (swamp-tether-4 42) - (swamp-buzzer 43) - (sunken-platforms 44) - (sunken-pipe 45) - (sunken-slide 46) - (sunken-room 47) - (sunken-sharks 48) - (sunken-buzzer 49) - (sunken-top-of-helix 50) - (sunken-spinning-room 51) - (rolling-race 52) - (rolling-robbers 53) - (rolling-moles 54) - (rolling-plants 55) - (rolling-lake 56) - (rolling-buzzer 57) - (rolling-ring-chase-1 58) - (rolling-ring-chase-2 59) - (snow-eggtop 60) - (snow-ram 61) - (snow-fort 62) - (snow-ball 63) - (snow-bunnies 64) - (snow-buzzer 65) - (snow-bumpers 66) - (snow-cage 67) - (firecanyon-buzzer 68) - (firecanyon-end 69) - (citadel-sage-green 70) - (citadel-sage-blue 71) - (citadel-sage-red 72) - (citadel-sage-yellow 73) - (village3-extra1 74) - (village1-buzzer 75) - (village2-buzzer 76) - (village3-buzzer 77) - (cave-gnawers 78) - (cave-dark-crystals 79) - (cave-dark-climb 80) - (cave-robot-climb 81) - (cave-swing-poles 82) - (cave-spider-tunnel 83) - (cave-platforms 84) - (cave-buzzer 85) - (ogre-boss 86) - (ogre-end 87) - (ogre-buzzer 88) - (lavatube-end 89) - (lavatube-buzzer 90) - (citadel-buzzer 91) - (training-gimmie 92) - (training-door 93) - (training-climb 94) - (training-buzzer 95) - (village3-miner-money1 96) - (village3-miner-money2 97) - (village3-miner-money3 98) - (village3-miner-money4 99) - (village3-oracle-money1 100) - (village3-oracle-money2 101) - (firecanyon-assistant 102) - (village2-levitator 103) - (swamp-arm 104) - (village3-button 105) - (red-eggtop 106) - (lavatube-balls 107) - (lavatube-start 108) - (intro 109) - (ogre-secret 110) - (village4-button 111) - (finalboss-movies 112) - (plunger-lurker-hit 113) - (leaving-misty 114) - (assistant-village3 115) - (max 116) - ) - ;; Game parameters. (deftype game-bank (basic) ((life-max-default float :offset-assert 4) ;; yes this life system works, but does nothing @@ -255,19 +132,19 @@ (total-deaths int32 :offset-assert 156) (continue-deaths int32 :offset-assert 160) (fuel-cell-deaths int32 :offset-assert 164) - (game-start-time uint64 :offset-assert 168) - (continue-time uint64 :offset-assert 176) - (death-time uint64 :offset-assert 184) - (hit-time uint64 :offset-assert 192) - (fuel-cell-pickup-time uint64 :offset-assert 200) - (fuel-cell-time (array uint64) :offset-assert 208) - (enter-level-time (array uint64) :offset-assert 212) - (in-level-time (array uint64) :offset-assert 216) - (blackout-time uint64 :offset-assert 224) - (letterbox-time uint64 :offset-assert 232) ;; time to turn off letterboxing, base-frame - (hint-play-time uint64 :offset-assert 240) - (display-text-time uint64 :offset-assert 248) - (display-text-handle uint64 :offset-assert 256) + (game-start-time int64 :offset-assert 168) + (continue-time int64 :offset-assert 176) + (death-time int64 :offset-assert 184) + (hit-time int64 :offset-assert 192) + (fuel-cell-pickup-time int64 :offset-assert 200) + (fuel-cell-time (array int64) :offset-assert 208) + (enter-level-time (array int64) :offset-assert 212) + (in-level-time (array int64) :offset-assert 216) + (blackout-time int64 :offset-assert 224) + (letterbox-time int64 :offset-assert 232) ;; time to turn off letterboxing, base-frame + (hint-play-time int64 :offset-assert 240) + (display-text-time int64 :offset-assert 248) + (display-text-handle handle :offset-assert 256) (death-movie-tick int32 :offset-assert 264) (want-auto-save symbol :offset-assert 268) (auto-save-proc handle :offset-assert 272) @@ -310,9 +187,9 @@ (define-extern *game-info* game-info) (when (or (not *game-info*) (zero? *game-info*)) (let ((temp (new 'static 'game-info :mode 'debug :current-continue #f))) - (set! (-> temp fuel-cell-time) (new 'global 'boxed-array uint64 116)) - (set! (-> temp enter-level-time) (new 'global 'boxed-array uint64 32)) - (set! (-> temp in-level-time) (new 'global 'boxed-array uint64 32)) + (set! (-> temp fuel-cell-time) (new 'global 'boxed-array int64 116)) + (set! (-> temp enter-level-time) (new 'global 'boxed-array int64 32)) + (set! (-> temp in-level-time) (new 'global 'boxed-array int64 32)) (set! *game-info* temp) ) ) diff --git a/goal_src/engine/game/game-info.gc b/goal_src/engine/game/game-info.gc index f085d0411a..3c06ef651a 100644 --- a/goal_src/engine/game/game-info.gc +++ b/goal_src/engine/game/game-info.gc @@ -267,15 +267,15 @@ (set! (-> obj death-time) (-> *display* base-frame-counter)) (set! (-> obj hit-time) (-> *display* base-frame-counter)) (dotimes (v1-50 116) - (set! (-> obj fuel-cell-time 0) (the-as uint 0)) + (set! (-> obj fuel-cell-time 0) 0) (nop!) ) (dotimes (v1-53 32) - (set! (-> obj money-per-level v1-53) (the-as uint 0)) - (set! (-> obj deaths-per-level v1-53) (the-as uint 0)) - (set! (-> obj enter-level-time v1-53) (the-as uint 0)) - (set! (-> obj in-level-time v1-53) (the-as uint 0)) - (set! (-> obj level-opened v1-53) (the-as uint 0)) + (set! (-> obj money-per-level v1-53) 0) + (set! (-> obj deaths-per-level v1-53) 0) + (set! (-> obj enter-level-time v1-53) 0) + (set! (-> obj in-level-time v1-53) 0) + (set! (-> obj level-opened v1-53) 0) (nop!) ) ) @@ -314,15 +314,7 @@ ) ;; send the auto-save process a 'die message - (let ((a1-11 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-11 from) pp) - (set! (-> a1-11 num-params) 0) - (set! (-> a1-11 message) 'die) - (send-event-function - (handle->process (-> *game-info* auto-save-proc)) - a1-11 - ) - ) + (send-event (handle->process (-> *game-info* auto-save-proc)) 'die) ;; black screen, stop spawning actors (set! (-> *level* border?) #f) @@ -331,12 +323,7 @@ (set-blackout-frames 30) ;; send target a 'reset message. - (let ((a1-12 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-12 from) pp) - (set! (-> a1-12 num-params) 0) - (set! (-> a1-12 message) 'reset) - (send-event-function *target* a1-12) - ) + (send-event *target* 'reset) ;; start a temporary process to restart things (let ((proc (get-process *4k-dead-pool* process #x4000))) @@ -388,7 +375,7 @@ ((= v1-0 'money) (if (and (< 0.0 amount) (= (+ (-> obj money) amount) (-> *GAME-bank* money-task-inc))) ;; got enough orbs to trade, display a hint - (level-hint-spawn (game-text-id MISSING-orb-hint) "sksp0014" #f *entity-pool* 0) + (level-hint-spawn (game-text-id MISSING-orb-hint) "sksp0014" (the entity #f) *entity-pool* (game-task none)) ) ;; need to update the various orb counters @@ -1149,7 +1136,7 @@ ;; initialize some fields (if (zero? (-> gp-0 display-text-handle)) - (set! (-> gp-0 display-text-handle) (the-as uint #f)) + (set! (-> gp-0 display-text-handle) (the-as handle #f)) ) (if (not (-> gp-0 current-continue)) (set-continue! gp-0 *default-continue*) diff --git a/goal_src/engine/game/game-save.gc b/goal_src/engine/game/game-save.gc index 52fcd2b0df..1f8bed040c 100644 --- a/goal_src/engine/game/game-save.gc +++ b/goal_src/engine/game/game-save.gc @@ -1464,19 +1464,19 @@ (set! (-> obj fuel-cell-deaths) (the-as int (-> data user-uint64))) ) ((= v1-7 (game-save-elt game-start-time)) - (set! (-> obj game-start-time) (-> data user-uint64)) + (set! (-> obj game-start-time) (the-as int (-> data user-uint64))) ) ((= v1-7 (game-save-elt continue-time)) - (set! (-> obj continue-time) (-> data user-uint64)) + (set! (-> obj continue-time) (the-as int (-> data user-uint64))) ) ((= v1-7 (game-save-elt death-time)) - (set! (-> obj death-time) (-> data user-uint64)) + (set! (-> obj death-time) (the-as int (-> data user-uint64))) ) ((= v1-7 (game-save-elt hit-time)) - (set! (-> obj hit-time) (-> data user-uint64)) + (set! (-> obj hit-time) (the-as int (-> data user-uint64))) ) ((= v1-7 (game-save-elt fuel-cell-pickup-time)) - (set! (-> obj fuel-cell-pickup-time) (-> data user-uint64)) + (set! (-> obj fuel-cell-pickup-time) (the-as int (-> data user-uint64))) ) ((= v1-7 (game-save-elt deaths-per-level)) (let ((v1-79 (min 32 (-> data elt-count)))) @@ -1492,7 +1492,7 @@ (let ((v1-83 (min 32 (-> data elt-count)))) (dotimes (a0-126 v1-83) (set! (-> obj enter-level-time a0-126) - (-> (the-as (pointer uint64) (&+ (&+ (the-as pointer data) 16) (* a0-126 8)))) + (-> (the-as (pointer int64) (&+ (&+ (the-as pointer data) 16) (* a0-126 8)))) ) ) ) @@ -1501,7 +1501,7 @@ (let ((v1-87 (min 32 (-> data elt-count)))) (dotimes (a0-130 v1-87) (set! (-> obj in-level-time a0-130) - (-> (the-as (pointer uint64) (&+ (&+ (the-as pointer data) 16) (* a0-130 8)))) + (-> (the-as (pointer int64) (&+ (&+ (the-as pointer data) 16) (* a0-130 8)))) ) ) ) @@ -1510,7 +1510,7 @@ (let ((v1-92 (min 32 (-> data elt-count)))) (dotimes (a0-133 v1-92) (set! (-> obj fuel-cell-time a0-133) - (-> (the-as (pointer uint64) (&+ (&+ (the-as pointer data) 16) (* a0-133 8)))) + (-> (the-as (pointer int64) (&+ (&+ (the-as pointer data) 16) (* a0-133 8)))) ) ) ) diff --git a/goal_src/engine/game/generic-obs.gc b/goal_src/engine/game/generic-obs.gc index 7ffa2ab271..0c3d078074 100644 --- a/goal_src/engine/game/generic-obs.gc +++ b/goal_src/engine/game/generic-obs.gc @@ -6,6 +6,113 @@ ;; dgos: GAME, ENGINE +;; definition for function clone-anim-once +;; INFO: Return type mismatch int vs none. +;; Used lq/sq +(defbehavior + clone-anim-once process-drawable + ((arg0 handle) (arg1 int) (arg2 symbol) (arg3 string)) + (set! (-> self skel status) (logand -33 (-> self skel status))) + (let ((s5-0 (handle->process arg0))) + (if (the-as process-drawable s5-0) + (joint-control-copy! + (-> self skel) + (-> (the-as process-drawable s5-0) skel) + ) + ) + (cond + ((and + (the-as process-drawable s5-0) + (joint-control-remap! + (-> self skel) + (-> self draw art-group) + (-> (the-as process-drawable s5-0) draw art-group) + '() + 0 + arg3 + ) + ) + (when arg2 + (let* ((s4-1 (-> self root)) + (a0-7 + (if + (and (nonzero? s4-1) (type-type? (-> s4-1 type) collide-shape)) + (the-as collide-shape s4-1) + ) + ) + ) + (if a0-7 + (TODO-RENAME-30 a0-7 (-> (the-as process-drawable s5-0) root trans)) + (set! + (-> self root trans quad) + (-> (the-as process-drawable s5-0) root trans quad) + ) + ) + ) + (quaternion-copy! + (-> self root quat) + (-> (the-as process-drawable s5-0) root quat) + ) + ) + (if (logtest? (-> (the-as process-drawable s5-0) skel status) 32) + (logior! (-> self skel status) 32) + ) + (set! (-> self draw status) (logand -7 (-> self draw status))) + (if (not (-> self skel root-channel 0 frame-group)) + (logior! (-> self draw status) 4) + ) + (let* ((s5-1 self) + (v1-37 (if (and (nonzero? s5-1) (type-type? (-> s5-1 type) manipy)) + s5-1 + ) + ) + ) + (if (and manipy (not (-> (the-as manipy v1-37) draw?))) + (logior! (-> self draw status) 4) + ) + ) + (dummy-17 self) + (let ((a0-22 (-> self skel effect))) + (if a0-22 + ((method-of-object a0-22 dummy-9)) + ) + ) + (if (logtest? (-> self skel status) 72) + (merc-blend-shape self) + ) + (if (logtest? (-> self skel status) 384) + (merc-eye-anim self) + ) + ) + (else + (logior! (-> self draw status) 2) + (ja-post) + ) + ) + ) + (if (>= arg1 0) + (vector<-cspace! (-> self draw origin) (-> self node-list data arg1)) + ) + 0 + (none) + ) + +;; definition for function clone-anim +;; INFO: Return type mismatch int vs none. +(defbehavior + clone-anim process-drawable + ((arg0 handle) (arg1 int) (arg2 symbol) (arg3 string)) + (ja-post) + (while (handle->process arg0) + (clone-anim-once arg0 arg1 #t arg3) + (suspend) + ) + (set! (-> self skel status) (logand -33 (-> self skel status))) + 0 + (none) + ) + + (deftype camera-start (process-hidden) () :method-count-assert 15 diff --git a/goal_src/engine/game/task/game-task-h.gc b/goal_src/engine/game/task/game-task-h.gc index 1b5f54a1c1..a13126121b 100644 --- a/goal_src/engine/game/task/game-task-h.gc +++ b/goal_src/engine/game/task/game-task-h.gc @@ -6,3 +6,126 @@ ;; dgos: GAME, ENGINE ;; this file has no code. + +;; List of each task in the game. +;; Each task has a task-control associated with it, see task-control.gc +(defenum game-task + :type uint8 + (none 0) + (complete 1) + (jungle-eggtop 2) + (jungle-lurkerm 3) + (jungle-tower 4) + (jungle-fishgame 5) + (jungle-plant 6) + (jungle-buzzer 7) + (jungle-canyon-end 8) + (jungle-temple-door 9) + (village1-yakow 10) + (village1-mayor-money 11) + (village1-uncle-money 12) + (village1-oracle-money1 13) + (village1-oracle-money2 14) + (beach-ecorocks 15) + (beach-pelican 16) + (beach-flutflut 17) + (beach-seagull 18) + (beach-cannon 19) + (beach-buzzer 20) + (beach-gimmie 21) + (beach-sentinel 22) + (misty-muse 23) + (misty-boat 24) + (misty-warehouse 25) + (misty-cannon 26) + (misty-bike 27) + (misty-buzzer 28) + (misty-bike-jump 29) + (misty-eco-challenge 30) + (village2-gambler-money 31) + (village2-geologist-money 32) + (village2-warrior-money 33) + (village2-oracle-money1 34) + (village2-oracle-money2 35) + (swamp-billy 36) + (swamp-flutflut 37) + (swamp-battle 38) + (swamp-tether-1 39) + (swamp-tether-2 40) + (swamp-tether-3 41) + (swamp-tether-4 42) + (swamp-buzzer 43) + (sunken-platforms 44) + (sunken-pipe 45) + (sunken-slide 46) + (sunken-room 47) + (sunken-sharks 48) + (sunken-buzzer 49) + (sunken-top-of-helix 50) + (sunken-spinning-room 51) + (rolling-race 52) + (rolling-robbers 53) + (rolling-moles 54) + (rolling-plants 55) + (rolling-lake 56) + (rolling-buzzer 57) + (rolling-ring-chase-1 58) + (rolling-ring-chase-2 59) + (snow-eggtop 60) + (snow-ram 61) + (snow-fort 62) + (snow-ball 63) + (snow-bunnies 64) + (snow-buzzer 65) + (snow-bumpers 66) + (snow-cage 67) + (firecanyon-buzzer 68) + (firecanyon-end 69) + (citadel-sage-green 70) + (citadel-sage-blue 71) + (citadel-sage-red 72) + (citadel-sage-yellow 73) + (village3-extra1 74) + (village1-buzzer 75) + (village2-buzzer 76) + (village3-buzzer 77) + (cave-gnawers 78) + (cave-dark-crystals 79) + (cave-dark-climb 80) + (cave-robot-climb 81) + (cave-swing-poles 82) + (cave-spider-tunnel 83) + (cave-platforms 84) + (cave-buzzer 85) + (ogre-boss 86) + (ogre-end 87) + (ogre-buzzer 88) + (lavatube-end 89) + (lavatube-buzzer 90) + (citadel-buzzer 91) + (training-gimmie 92) + (training-door 93) + (training-climb 94) + (training-buzzer 95) + (village3-miner-money1 96) + (village3-miner-money2 97) + (village3-miner-money3 98) + (village3-miner-money4 99) + (village3-oracle-money1 100) + (village3-oracle-money2 101) + (firecanyon-assistant 102) + (village2-levitator 103) + (swamp-arm 104) + (village3-button 105) + (red-eggtop 106) + (lavatube-balls 107) + (lavatube-start 108) + (intro 109) + (ogre-secret 110) + (village4-button 111) + (finalboss-movies 112) + (plunger-lurker-hit 113) + (leaving-misty 114) + (assistant-village3 115) + (max 116) + ) diff --git a/goal_src/engine/game/task/hint-control-h.gc b/goal_src/engine/game/task/hint-control-h.gc index e0a96f318b..6995bed04f 100644 --- a/goal_src/engine/game/task/hint-control-h.gc +++ b/goal_src/engine/game/task/hint-control-h.gc @@ -5,6 +5,23 @@ ;; name in dgo: hint-control-h ;; dgos: GAME, ENGINE +(defenum hint-command + (if-unknown 0) + (if-known 1) + (if-resolved 2) + (if-need-introduction 3) + (if-need-reminder 4) + (if-need-reminder-a 5) + (if-need-reward-speech 6) + (close-need-hint 7) + (close-need-introduction 8) + (close-need-reminder 9) + (close-need-reminder-a 10) + (close-need-reward-speech 11) + (close-need-resolution 12) + (if-at-most-need-reminder-a 13) + ) + (deftype level-hint-control (structure) ((delay-before-playing uint64 :offset-assert 0) (id uint32 :offset-assert 8) @@ -21,8 +38,8 @@ ) (deftype task-hint-control (structure) - ((task uint8 :offset-assert 0) - (delay uint64 :offset-assert 8) + ((task game-task :offset-assert 0) + (delay int64 :offset-assert 8) ) :method-count-assert 9 :size-assert #x10 @@ -37,4 +54,7 @@ :flag-assert #x900000004 ) -(define-extern reset-all-hint-controls (function none)) \ No newline at end of file +(define-extern reset-all-hint-controls (function none)) +(define-extern kill-current-level-hint (function pair pair symbol none)) +(define-extern level-hint-spawn (function game-text-id string entity process-tree game-task none)) + diff --git a/goal_src/engine/game/task/hint-control.gc b/goal_src/engine/game/task/hint-control.gc index 967b6d6168..6610f513e7 100644 --- a/goal_src/engine/game/task/hint-control.gc +++ b/goal_src/engine/game/task/hint-control.gc @@ -5,8 +5,6 @@ ;; name in dgo: hint-control ;; dgos: GAME, ENGINE -(define-extern *hint-semaphore* (pointer process-tree)) ;; likely a level-hint process - ;; failed to figure out what this is: (set! (-> *game-info* hint-control) @@ -159,133 +157,205 @@ ;; failed to figure out what this is: (set! (-> *game-info* task-hint-control) - (the-as - (array task-hint-control-group) - (new - 'static - 'boxed-array - :type task-hint-control-group :length 16 :allocated-length 16 - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 3 :allocated-length 3 - (new 'static 'task-hint-control :task #x5c :delay #x2bf20) - (new 'static 'task-hint-control :task #x5d :delay #x57e40) - (new 'static 'task-hint-control :task #x5e :delay #x83d60) + (new + 'static + 'boxed-array + :type task-hint-control-group :length 16 :allocated-length 16 + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 3 :allocated-length 3 + (new 'static 'task-hint-control + :task (game-task training-gimmie) + :delay #x2bf20 + ) + (new 'static 'task-hint-control + :task (game-task training-door) + :delay #x57e40 + ) + (new 'static 'task-hint-control + :task (game-task training-climb) + :delay #x83d60 ) ) - (new 'static 'task-hint-control-group) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 3 :allocated-length 3 - (new 'static 'task-hint-control :task #x15 :delay #x41eb0) - (new 'static 'task-hint-control :task #x16 :delay #x83d60) - (new 'static 'task-hint-control :task #x13 :delay #xc5c10) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 2 :allocated-length 2 - (new 'static 'task-hint-control :task #x6 :delay #x57e40) - (new 'static 'task-hint-control :task #x8 :delay #xafc80) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 4 :allocated-length 4 - (new 'static 'task-hint-control :task #x18 :delay #x57e40) - (new 'static 'task-hint-control :task #x19 :delay #x83d60) - (new 'static 'task-hint-control :task #x1d :delay #xafc80) - (new 'static 'task-hint-control :task #x1e :delay #xdbba0) - ) - ) - (new 'static 'task-hint-control-group) - (new 'static 'task-hint-control-group) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 3 :allocated-length 3 - (new 'static 'task-hint-control :task #x33 :delay #x57e40) - (new 'static 'task-hint-control :task #x30 :delay #x83d60) - (new 'static 'task-hint-control :task #x2e :delay #xafc80) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 1 :allocated-length 1 - (new 'static 'task-hint-control :task #x26 :delay #xafc80) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 1 :allocated-length 1 - (new 'static 'task-hint-control :task #x38 :delay #xafc80) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 1 :allocated-length 1 - (new 'static 'task-hint-control :task #x6e :delay #x107ac0) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 1 :allocated-length 1 - (new 'static 'task-hint-control :task #x4a :delay #x107ac0) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 4 :allocated-length 4 - (new 'static 'task-hint-control :task #x42 :delay #x57e40) - (new 'static 'task-hint-control :task #x43 :delay #x83d60) - (new 'static 'task-hint-control :task #x3f :delay #xafc80) - (new 'static 'task-hint-control :task #x40 :delay #xdbba0) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 4 :allocated-length 4 - (new 'static 'task-hint-control :task #x50 :delay #x57e40) - (new 'static 'task-hint-control :task #x51 :delay #x83d60) - (new 'static 'task-hint-control :task #x52 :delay #xafc80) - (new 'static 'task-hint-control :task #x54 :delay #xdbba0) - ) - ) - (new 'static 'task-hint-control-group) - (new 'static 'task-hint-control-group) ) + (new 'static 'task-hint-control-group) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 3 :allocated-length 3 + (new 'static 'task-hint-control + :task (game-task beach-gimmie) + :delay #x41eb0 + ) + (new 'static 'task-hint-control + :task (game-task beach-sentinel) + :delay #x83d60 + ) + (new 'static 'task-hint-control + :task (game-task beach-cannon) + :delay #xc5c10 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 2 :allocated-length 2 + (new 'static 'task-hint-control + :task (game-task jungle-plant) + :delay #x57e40 + ) + (new 'static 'task-hint-control + :task (game-task jungle-canyon-end) + :delay #xafc80 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 4 :allocated-length 4 + (new 'static 'task-hint-control + :task (game-task misty-boat) + :delay #x57e40 + ) + (new 'static 'task-hint-control + :task (game-task misty-warehouse) + :delay #x83d60 + ) + (new 'static 'task-hint-control + :task (game-task misty-bike-jump) + :delay #xafc80 + ) + (new 'static 'task-hint-control + :task (game-task misty-eco-challenge) + :delay #xdbba0 + ) + ) + ) + (new 'static 'task-hint-control-group) + (new 'static 'task-hint-control-group) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 3 :allocated-length 3 + (new 'static 'task-hint-control + :task (game-task sunken-spinning-room) + :delay #x57e40 + ) + (new 'static 'task-hint-control + :task (game-task sunken-sharks) + :delay #x83d60 + ) + (new 'static 'task-hint-control + :task (game-task sunken-slide) + :delay #xafc80 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 1 :allocated-length 1 + (new 'static 'task-hint-control + :task (game-task swamp-battle) + :delay #xafc80 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 1 :allocated-length 1 + (new 'static 'task-hint-control + :task (game-task rolling-lake) + :delay #xafc80 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 1 :allocated-length 1 + (new 'static 'task-hint-control + :task (game-task ogre-secret) + :delay #x107ac0 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 1 :allocated-length 1 + (new 'static 'task-hint-control + :task (game-task village3-extra1) + :delay #x107ac0 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 4 :allocated-length 4 + (new 'static 'task-hint-control + :task (game-task snow-bumpers) + :delay #x57e40 + ) + (new 'static 'task-hint-control :task (game-task snow-cage) :delay #x83d60) + (new 'static 'task-hint-control :task (game-task snow-ball) :delay #xafc80) + (new 'static 'task-hint-control + :task (game-task snow-bunnies) + :delay #xdbba0 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 4 :allocated-length 4 + (new 'static 'task-hint-control + :task (game-task cave-dark-climb) + :delay #x57e40 + ) + (new 'static 'task-hint-control + :task (game-task cave-robot-climb) + :delay #x83d60 + ) + (new 'static 'task-hint-control + :task (game-task cave-swing-poles) + :delay #xafc80 + ) + (new 'static 'task-hint-control + :task (game-task cave-platforms) + :delay #xdbba0 + ) + ) + ) + (new 'static 'task-hint-control-group) + (new 'static 'task-hint-control-group) ) ) @@ -343,20 +413,16 @@ ;; definition for function can-hint-be-played? ;; WARN: disable def twice: 139. This may happen when a cond (no else) is nested inside of another conditional, but it should be rare. -(defun can-hint-be-played? ((arg0 int)) +(defun can-hint-be-played? ((arg0 int) (arg1 entity) (arg2 string)) (let ((v1-0 (not (str-is-playing?)))) (if (and v1-0 (nonzero? arg0)) (set! v1-0 (not (seen-text? *game-info* (the-as game-text-id arg0)))) ) (when v1-0 (when *hint-semaphore* - (let ((v1-3 *hint-semaphore*)) - (set! v1-0 (dummy-15 (the-as level-hint (if v1-3 - (-> v1-3 0 self) - ) - ) - ) - ) + (set! + v1-0 + (dummy-15 (the-as level-hint (ppointer->process *hint-semaphore*))) ) 0 ) @@ -364,10 +430,7 @@ (and v1-0 (< - (the-as - int - (- (-> *display* base-frame-counter) (-> *game-info* hint-play-time)) - ) + (- (-> *display* base-frame-counter) (-> *game-info* hint-play-time)) 30 ) ) @@ -382,10 +445,7 @@ (not (-> *setting-control* current spooling)) (not (-> *setting-control* current hint)) (not (-> *setting-control* current ambient)) - (>= - (the-as int (-> *display* base-frame-counter)) - (the-as int (-> *game-info* blackout-time)) - ) + (>= (-> *display* base-frame-counter) (-> *game-info* blackout-time)) ) ) 0 @@ -407,22 +467,15 @@ ) (v1-21 #t) ) - (if - (and - (= (-> gp-1 num-attempts-before-playing) 1) - (< (the-as int a0-24) 30) - ) - (set! (-> gp-1 start-time) (+ (-> gp-1 start-time) a0-24)) + (if (and (= (-> gp-1 num-attempts-before-playing) 1) (< a0-24 30)) + (+! (-> gp-1 start-time) a0-24) ) (cond ((and (!= (-> gp-1 num-attempts-before-playing) 1) (nonzero? (-> gp-1 last-time-called)) (< - (the-as - int - (- (-> *display* base-frame-counter) (-> gp-1 last-time-called)) - ) + (- (-> *display* base-frame-counter) (-> gp-1 last-time-called)) 150 ) ) @@ -434,7 +487,7 @@ (when (nonzero? (-> gp-1 delay-before-playing)) (if (< - (the-as int (-> gp-1 start-time)) + (-> gp-1 start-time) (the-as int (-> gp-1 delay-before-playing)) ) (set! v1-21 #f) @@ -488,41 +541,43 @@ (none) ) -;; TODO - defined in progress-static -(define-extern *level-task-data-remap* (array int32)) - - +;; definition for function update-task-hints +;; INFO: Return type mismatch int vs none. (defun update-task-hints () (when *target* - (let ((a0-0 (+ (-> *target* current-level info index) -1)) - (v1-7 (-> *game-info* task-hint-control)) - ) - (when (and (>= a0-0 0) (< a0-0 (-> *level-task-data-remap* length))) - (let ((a0-3 (-> *level-task-data-remap* a0-0))) - (when (< a0-3 (-> v1-7 length)) - (let ((gp-0 (-> v1-7 a0-3 tasks))) - (when (and (!= gp-0 0) (nonzero? (-> gp-0 length))) - (let ((s5-0 (-> *game-info* in-level-time a0-3))) - (dotimes (s4-0 (-> gp-0 length)) - (case (get-task-status (the-as game-task (-> gp-0 s4-0 task))) - (((task-status need-hint) (task-status unknown)) - (if (< (-> gp-0 s4-0 delay) s5-0) - (close-specific-task! - (the-as game-task (-> gp-0 s4-0 task)) - (task-status need-hint) - ) - ) - ) - ) - ) - ) + (let ((a0-0 (+ (-> *target* current-level info index) -1)) + (v1-7 (-> *game-info* task-hint-control)) + ) + (when (and (>= a0-0 0) (< a0-0 (-> *level-task-data-remap* length))) + (let ((a0-3 (-> *level-task-data-remap* a0-0))) + (when (< a0-3 (-> v1-7 length)) + (let ((gp-0 (-> v1-7 a0-3 tasks))) + (when (and (!= gp-0 0) (nonzero? (-> gp-0 length))) + (let ((s5-0 (-> *game-info* in-level-time a0-3))) + (dotimes (s4-0 (-> gp-0 length)) + (case (get-task-status (-> gp-0 s4-0 task)) + (((task-status need-hint) (task-status unknown)) + (if (< (the-as uint (-> gp-0 s4-0 delay)) (the-as uint s5-0)) + (close-specific-task! + (-> gp-0 s4-0 task) + (task-status need-hint) ) + ) ) ) + ) ) + ) ) + ) ) + ) ) + ) 0 (none) ) + + + + diff --git a/goal_src/engine/game/task/task-control-h.gc b/goal_src/engine/game/task/task-control-h.gc index 879d1583c6..9696a7583e 100644 --- a/goal_src/engine/game/task/task-control-h.gc +++ b/goal_src/engine/game/task/task-control-h.gc @@ -54,8 +54,8 @@ :size-assert #x18 :flag-assert #x1000000018 (:methods - (get-game-task (_type_) game-task 9) - (get-task-status (_type_) task-status 10) + (get-task (_type_) game-task 9) + (get-status (_type_) task-status 10) (task-available? (_type_ task-control) symbol 11) (closed? (_type_) symbol 12) (closed-by-default? (_type_) symbol 13) @@ -168,6 +168,8 @@ ) ) +(defun-extern task-known? game-task symbol) + (define-extern task-closed? (function game-task task-status symbol)) (define-extern get-task-status (function game-task task-status)) (define-extern get-task-control (function game-task task-control)) diff --git a/goal_src/engine/game/task/task-control.gc b/goal_src/engine/game/task/task-control.gc index d3da1d2900..48af99c5d9 100644 --- a/goal_src/engine/game/task/task-control.gc +++ b/goal_src/engine/game/task/task-control.gc @@ -9,12 +9,12 @@ (enum->string task-status arg0) ) -(defmethod get-game-task task-cstage ((obj task-cstage)) +(defmethod get-task task-cstage ((obj task-cstage)) "Get the game task for this cstage" (-> obj game-task) ) -(defmethod get-task-status task-cstage ((obj task-cstage)) +(defmethod get-status task-cstage ((obj task-cstage)) "Get the status for this cstage" (-> obj status) ) diff --git a/goal_src/engine/gfx/eye-h.gc b/goal_src/engine/gfx/eye-h.gc index 3e288bf6ae..ba84ca6314 100644 --- a/goal_src/engine/gfx/eye-h.gc +++ b/goal_src/engine/gfx/eye-h.gc @@ -67,4 +67,5 @@ (set! (-> *eye-control-array* data v1-5 blink) 0.0) ) -(define-extern get-eye-block (function int int int)) \ No newline at end of file +(define-extern get-eye-block (function int int int)) +(defun-extern merc-eye-anim process-drawable none) diff --git a/goal_src/engine/gfx/hw/display-h.gc b/goal_src/engine/gfx/hw/display-h.gc index aea6c3ff2c..8db65caceb 100644 --- a/goal_src/engine/gfx/hw/display-h.gc +++ b/goal_src/engine/gfx/hw/display-h.gc @@ -243,5 +243,9 @@ `(-> *display* integral-frame-counter) ) +(defmacro real-current-time () + `(-> *display* real-frame-counter) + ) + (define-extern get-current-time (function int)) (define-extern get-integral-current-time (function int)) \ No newline at end of file diff --git a/goal_src/engine/gfx/merc/merc-blend-shape.gc b/goal_src/engine/gfx/merc/merc-blend-shape.gc index f09bb80e96..2a74efe1dc 100644 --- a/goal_src/engine/gfx/merc/merc-blend-shape.gc +++ b/goal_src/engine/gfx/merc/merc-blend-shape.gc @@ -118,5 +118,6 @@ ;; todo blerc-execute ;; todo merc-blend-shape +(define-extern merc-blend-shape (function process-drawable object)) ;; todo setup-blerc-chains \ No newline at end of file diff --git a/goal_src/engine/gfx/shadow/shadow.gc b/goal_src/engine/gfx/shadow/shadow.gc index d52bc512ba..4716bce9e5 100644 --- a/goal_src/engine/gfx/shadow/shadow.gc +++ b/goal_src/engine/gfx/shadow/shadow.gc @@ -156,24 +156,32 @@ (set! (-> s2-0 quad) (-> arg0 quad)) (new 'stack-no-clear 'vector) (+! (-> s2-0 y) arg5) - (let ((s4-0 (new 'stack-no-clear 'bone))) + (let ((s4-0 (new 'stack-no-clear 'collide-tri-result))) (cond ((>= - (dummy-12 *collide-cache* s2-0 arg6 arg3 arg4 s4-0 (the-as uint 1)) + (fill-and-probe-using-y-probe + *collide-cache* + s2-0 + arg6 + arg3 + arg4 + s4-0 + (the-as uint 1) + ) 0.0 ) (if (!= arg2 0.0) (compute-and-draw-shadow s2-0 - (-> s4-0 position) - (-> s4-0 scale) + (-> s4-0 intersect) + (-> s4-0 normal) (the-as vector arg2) arg6 (the-as float 0) ) ) - (if (and arg1 (!= (shr (shl (-> s4-0 cache bone-matrix) 52) 58) 3)) - (set! (-> arg1 quad) (-> s4-0 position quad)) + (if (and arg1 (!= (-> s4-0 pat material) 3)) + (set! (-> arg1 quad) (-> s4-0 intersect quad)) ) ) (else @@ -226,118 +234,125 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 20 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41000000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4499999a - :random-mult #x3f800000 + :initial-valuef 1228.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :initial-value -956301312 - :random-range #x47800000 - :random-mult #x3f800000 + :initial-valuef -32768.0 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42b40000 - :random-mult #x3f800000 + :initial-valuef 90.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42b40000 - :random-mult #x3f800000 + :initial-valuef 90.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42b40000 - :random-mult #x3f800000 + :initial-valuef 90.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41a00000 - :random-range #x41a00000 - :random-mult #x3f800000 + :initial-valuef 20.0 + :random-rangef 20.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x4103126f - :random-mult #x3f800000 + :initial-valuef 8.192 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x41888889 - :random-mult #x3f800000 + :initial-valuef 17.066668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1097229926 - :random-mult #x3f800000 + :initial-valuef -0.3 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x138c - :random-mult 1 + :initial-valuef (the-as float #x138c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value 12 - :random-mult 1 + :initial-valuef (the-as float #xc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x36 :flags #x1 - :initial-value -983331271 - :random-range #x452aaaab - :random-mult #x3f800000 + :initial-valuef -3640.889 + :random-rangef 2730.6667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x46800000 - :random-mult #x3f800000 + :initial-valuef 16384.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :initial-value -956301312 - :random-range #x47800000 - :random-mult #x3f800000 + :initial-valuef -32768.0 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :initial-value #x444ccccd - :random-mult #x3f800000 + :initial-valuef 819.2 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) ) ) + + + + diff --git a/goal_src/engine/target/target-part.gc b/goal_src/engine/target/target-part.gc index f8b3a0e311..e4e323cc8d 100644 --- a/goal_src/engine/target/target-part.gc +++ b/goal_src/engine/target/target-part.gc @@ -48,13 +48,13 @@ (init-vf0-vector) (let ((a1-1 (new 'stack-no-clear 'vector))) (set! (-> a1-1 quad) (-> arg2 launchrot quad)) - (let ((s3-0 (new 'stack-no-clear 'bone)) + (let ((s3-0 (new 'stack-no-clear 'collide-tri-result)) (s5-0 *target*) ) (set! (-> a1-1 y) (+ 4096.0 (-> a1-1 y))) (when (>= - (dummy-12 + (fill-and-probe-using-y-probe *collide-cache* a1-1 (the-as float 20480.0) @@ -68,11 +68,11 @@ (let ((s2-0 (new 'stack-no-clear 'vector)) (s4-1 (new 'stack-no-clear 'quaternion)) ) - (set! (-> s2-0 x) (-> s3-0 scale z)) + (set! (-> s2-0 x) (-> s3-0 normal z)) (set! (-> s2-0 y) 0.0) - (set! (-> s2-0 z) (- (-> s3-0 scale x))) + (set! (-> s2-0 z) (- (-> s3-0 normal x))) (vector-normalize! s2-0 (the-as float 1.0)) - (quaternion-vector-angle! s4-1 s2-0 (acos (-> s3-0 scale y))) + (quaternion-vector-angle! s4-1 s2-0 (acos (-> s3-0 normal y))) (let ((s3-1 (new 'stack-no-clear 'quaternion))) (quaternion-vector-angle! s3-1 @@ -255,91 +255,98 @@ (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 #x200400) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200400) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x46400000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 12288.0 + :random-rangef 4096.0 + :random-multf 1.0 + ) + (new 'static 'sp-field-init-spec + :field #xe + :initial-valuef (the-as float #x4) + :random-multf (the-as float #x1) ) - (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 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x1 - :initial-value #x4375c28f - :random-mult #x3f800000 + :initial-valuef 245.76 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (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 + :initial-valuef 128.0 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x15 :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x4423d70a - :random-mult #x3f800000 + :initial-valuef 655.36 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1042648050 - :random-range #x425a740e - :random-mult #x3f800000 + :initial-valuef -27.306667 + :random-rangef 54.613335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value #x40cccccd - :random-mult #x3f800000 + :initial-valuef 6.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x96 - :random-mult 1 + :initial-valuef (the-as float #x96) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value 12 - :random-mult 1 + :initial-valuef (the-as float #xc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x32 - :initial-value 10 - :random-mult 1 + :initial-valuef (the-as float #xa) + :random-multf (the-as float #x1) + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-valuef (the-as float #x3a) ) - (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 58) (new 'static 'sp-field-init-spec :field #x43) ) ) @@ -354,8 +361,8 @@ (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1088170230 - :random-mult #x3f800000 + :initial-valuef -0.64 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -368,75 +375,74 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 14 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201200) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x201200) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x47400000 - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #x10 - :flags #x1 - :random-mult #x3f800000 + :initial-valuef 49152.0 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x10 :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1030643020 - :random-mult #x3f800000 + :initial-valuef -72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1078588576 - :random-mult #x3f800000 + :initial-valuef -1.4222221 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value 42 - :random-mult 1 + :initial-valuef (the-as float #x2a) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value 12 - :random-mult 1 + :initial-valuef (the-as float #xc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -466,140 +472,147 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 25 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41c00000 - :random-mult #x3f800000 + :initial-valuef 24.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41000000 - :random-range #x42600000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-rangef 56.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x44088889 - :random-range #x442aaaab - :random-mult #x3f800000 + :initial-valuef 546.13336 + :random-rangef 682.6667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x425a740e - :random-mult #x3f800000 + :initial-valuef 54.613335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1030643020 - :random-range #x4311a2b4 - :random-mult #x3f800000 + :initial-valuef -72.81778 + :random-rangef 145.63556 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x22 :flags #x1 - :initial-value -1078588575 - :random-mult #x3f800000 + :initial-valuef -1.4222223 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1095365791 - :random-mult #x3f800000 + :initial-valuef -0.35555556 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value #x3eaec33e - :random-mult #x3f800000 + :initial-valuef 0.34133333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f333333 - :random-mult #x3f800000 + :initial-valuef 0.7 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #xb4 - :random-mult 1 + :initial-valuef (the-as float #xb4) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value 12 - :random-mult 1 + :initial-valuef (the-as float #xc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x32 - :initial-value 90 - :random-mult 1 + :initial-valuef (the-as float #x5a) + :random-multf (the-as float #x1) + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-valuef (the-as float #x3d) ) - (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 61) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x46800000 - :random-mult #x3f800000 + :initial-valuef 16384.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -612,114 +625,121 @@ (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 #x1 + :initial-valuef (the-as float #x200f00) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x41000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x4499999a - :random-mult #x3f800000 + :initial-valuef 1228.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x22 :flags #x1 - :initial-value -1070199967 - :random-mult #x3f800000 + :initial-valuef -2.8444445 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1085113048 - :random-mult #x3f800000 + :initial-valuef -0.82222223 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f333333 - :random-mult #x3f800000 + :initial-valuef 0.7 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value 90 - :random-mult 1 + :initial-valuef (the-as float #x5a) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value 12 - :random-mult 1 + :initial-valuef (the-as float #xc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x32 - :initial-value 45 - :random-mult 1 + :initial-valuef (the-as float #x2d) + :random-multf (the-as float #x1) + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-valuef (the-as float #x3d) ) - (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 61) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x46800000 - :random-mult #x3f800000 + :initial-valuef 16384.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -750,127 +770,134 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 23 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45c00000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 6144.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41000000 - :random-range #x42600000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-rangef 56.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x425a740e - :random-mult #x3f800000 + :initial-valuef 54.613335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1030643020 - :random-range #x4311a2b4 - :random-mult #x3f800000 + :initial-valuef -72.81778 + :random-rangef 145.63556 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x22 :flags #x1 - :initial-value -1078588575 - :random-mult #x3f800000 + :initial-valuef -1.4222223 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1095365791 - :random-mult #x3f800000 + :initial-valuef -0.35555556 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value #x3eaec33e - :random-mult #x3f800000 + :initial-valuef 0.34133333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #xb4 - :random-mult 1 + :initial-valuef (the-as float #xb4) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value 12 - :random-mult 1 + :initial-valuef (the-as float #xc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x32 - :initial-value 90 - :random-mult 1 + :initial-valuef (the-as float #x5a) + :random-multf (the-as float #x1) + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-valuef (the-as float #x3d) ) - (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 61) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :random-range #x47000000 - :random-mult #x3f800000 + :random-rangef 32768.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :random-range #x45000000 - :random-mult #x3f800000 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -886,20 +913,20 @@ (new 'static 'sp-field-init-spec :field #x21 :flags #x1 - :initial-value -1086977183 - :random-mult #x3f800000 + :initial-valuef -0.7111111 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x22 :flags #x1 - :initial-value #x3f360b61 - :random-mult #x3f800000 + :initial-valuef 0.7111111 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x23 :flags #x1 - :initial-value #x3eb60b61 - :random-mult #x3f800000 + :initial-valuef 0.35555556 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -912,102 +939,109 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 19 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200f00) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f28f5c3 - :random-mult #x3f800000 + :initial-valuef 0.66 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x41000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x22 :flags #x1 - :initial-value -1070199967 - :random-mult #x3f800000 + :initial-valuef -2.8444445 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1085113048 - :random-mult #x3f800000 + :initial-valuef -0.82222223 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value 90 - :random-mult 1 + :initial-valuef (the-as float #x5a) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value 12 - :random-mult 1 + :initial-valuef (the-as float #xc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x32 - :initial-value 45 - :random-mult 1 + :initial-valuef (the-as float #x2d) + :random-multf (the-as float #x1) + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-valuef (the-as float #x3d) ) - (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 61) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :random-range #x47000000 - :random-mult #x3f800000 + :random-rangef 32768.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :random-range #x43cccccd - :random-mult #x3f800000 + :random-rangef 409.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -1020,71 +1054,74 @@ (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 #x200f00) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200f00) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x46800000 - :random-range #x46000000 - :random-mult #x3f800000 + :initial-valuef 16384.0 + :random-rangef 8192.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1065353216 - :random-mult #x3f800000 + :initial-valuef -4.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value #x3eaec33e - :random-mult #x3f800000 + :initial-valuef 0.34133333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value 10 - :random-mult 1 + :initial-valuef (the-as float #xa) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value 12 - :random-mult 1 + :initial-valuef (the-as float #xc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -1131,109 +1168,112 @@ (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 #x200200) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200200) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x40800000 - :random-mult #x3f800000 + :initial-valuef 4.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value #x45400000 - :random-mult #x3f800000 + :initial-valuef 3072.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x46400000 - :random-mult #x3f800000 + :initial-valuef 12288.0 + :random-multf 1.0 + ) + (new 'static 'sp-field-init-spec + :field #xe + :initial-valuef (the-as float #x4) + :random-multf (the-as float #x1) ) - (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 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x1 - :initial-value #x4419999a - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 614.4 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43400000 - :random-mult #x3f800000 + :initial-valuef 192.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43400000 - :random-mult #x3f800000 + :initial-valuef 192.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42800000 - :random-range #x43000000 - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #x15 - :flags #x1 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 128.0 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x15 :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x42200000 - :random-mult #x3f800000 + :initial-valuef 40.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1042648050 - :random-range #x425a740e - :random-mult #x3f800000 + :initial-valuef -27.306667 + :random-rangef 54.613335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x1 - :initial-value #x42200000 - :random-mult #x3f800000 + :initial-valuef 40.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value #x40088889 - :random-mult #x3f800000 + :initial-valuef 2.1333334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value 30 - :random-mult 1 + :initial-valuef (the-as float #x1e) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value 12 - :random-mult 1 + :initial-valuef (the-as float #xc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x32 - :initial-value 15 - :random-mult 1 + :initial-valuef (the-as float #xf) + :random-multf (the-as float #x1) ) - (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 67) (new 'static 'sp-field-init-spec - :field #x3f - :flags #x1 - :random-mult #x3f800000 + :field #x33 + :flags #x6 + :initial-valuef (the-as float #x43) ) + (new 'static 'sp-field-init-spec :field #x3f :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x43) ) ) @@ -1248,8 +1288,8 @@ (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1073182583 - :random-mult #x3f800000 + :initial-valuef -2.1333334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -1262,70 +1302,73 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 13 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201200) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x201200) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x46400000 - :random-mult #x3f800000 + :initial-valuef 12288.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43440000 - :random-mult #x3f800000 + :initial-valuef 196.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43440000 - :random-mult #x3f800000 + :initial-valuef 196.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x43440000 - :random-mult #x3f800000 + :initial-valuef 196.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41e00000 - :random-mult #x3f800000 + :initial-valuef 28.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value 10 - :random-mult 1 + :initial-valuef (the-as float #xa) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value 12 - :random-mult 1 + :initial-valuef (the-as float #xc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -1376,7 +1419,10 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 22 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x4 :flags #x5 @@ -1385,120 +1431,116 @@ (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42c00000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42000000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x4323d70a - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 163.84 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1084591090 - :random-mult #x3f800000 + :initial-valuef -0.85333335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #x3f - :flags #x1 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x3f :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x43) ) ) @@ -1510,7 +1552,10 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 22 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x4 :flags #x5 @@ -1519,120 +1564,116 @@ (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41000000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x44800000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 1024.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42c00000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42000000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x43a3d70a - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 327.68 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1084591090 - :random-mult #x3f800000 + :initial-valuef -0.85333335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #x3f - :flags #x1 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x3f :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x43) ) ) @@ -1644,52 +1685,51 @@ (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 #x201200) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x201200) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41400000 - :random-range #x41000000 - :random-mult #x3f800000 + :initial-valuef 12.0 + :random-rangef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #x15 - :flags #x1 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x15 :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x25c - :random-mult 1 + :initial-valuef (the-as float #x25c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value 8 - :random-mult 1 + :initial-valuef (the-as float #x8) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x30 :flags #x1 - :initial-value #x41000000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x31 @@ -1707,110 +1747,101 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 19 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200f00) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #xa - :flags #x1 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #xa :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -978670933 - :random-range #x462aaaab - :random-mult #x3f800000 + :initial-valuef -5461.3335 + :random-rangef 10922.667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value #x45000000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x43cccccd - :random-range #x434ccccd - :random-mult #x3f800000 + :initial-valuef 409.6 + :random-rangef 204.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42000000 - :random-range #x42b80000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-rangef 92.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-range #x43000000 - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #x14 - :flags #x1 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-rangef 128.0 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x14 :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42000000 - :random-range #x42c00000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-rangef 96.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x18 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x19 :flags #x2 - :initial-value -1017482226 - :random-range 1 - :random-mult #x43da740e - ) - (new 'static 'sp-field-init-spec - :field #x1a - :flags #x1 - :random-mult #x3f800000 + :initial-valuef -218.45334 + :random-rangef (the-as float #x1) + :random-multf 436.90668 ) + (new 'static 'sp-field-init-spec :field #x1a :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x1b :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1097070143 - :random-mult #x3f800000 + :initial-valuef -0.30476192 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x25c - :random-mult 1 + :initial-valuef (the-as float #x25c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x8c - :random-mult 1 + :initial-valuef (the-as float #x8c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -1841,125 +1872,128 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1104947446 - :random-mult #x3f800000 + :initial-valuef -0.16 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -1972,125 +2006,128 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41400000 - :random-mult #x3f800000 + :initial-valuef 12.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x44800000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 1024.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x435a740e - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 218.45334 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x40da740e - :random-mult #x3f800000 + :initial-valuef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1101368306 - :random-mult #x3f800000 + :initial-valuef -0.21333334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x96 - :random-mult 1 + :initial-valuef (the-as float #x96) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -2103,123 +2140,126 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 20 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200400) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200400) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x438f5c29 - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 286.72 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x2 - :initial-value #x43000000 - :random-range 2 - :random-mult #x42000000 + :initial-valuef 128.0 + :random-rangef (the-as float #x2) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x42800000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 64.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x2 - :initial-value #x42000000 - :random-range 1 - :random-mult #x42000000 + :initial-valuef 32.0 + :random-rangef (the-as float #x1) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x4275c28f - :random-range #x41da740e - :random-mult #x3f800000 + :initial-valuef 61.44 + :random-rangef 27.306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1062288578 - :random-range #x402ec33e - :random-mult #x3f800000 + :initial-valuef -5.4613333 + :random-rangef 2.7306666 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x45aaaaab - :random-range #x460e38e4 - :random-mult #x3f800000 + :initial-valuef 5461.3335 + :random-rangef 9102.223 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :initial-value #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -2250,125 +2290,128 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1104947446 - :random-mult #x3f800000 + :initial-valuef -0.16 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -2381,125 +2424,128 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41400000 - :random-mult #x3f800000 + :initial-valuef 12.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x44800000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 1024.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x435a740e - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 218.45334 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x40da740e - :random-mult #x3f800000 + :initial-valuef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1101368306 - :random-mult #x3f800000 + :initial-valuef -0.21333334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x96 - :random-mult 1 + :initial-valuef (the-as float #x96) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -2512,123 +2558,126 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 20 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200400) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200400) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x438f5c29 - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 286.72 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x2 - :initial-value #x43000000 - :random-range 2 - :random-mult #x42000000 + :initial-valuef 128.0 + :random-rangef (the-as float #x2) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x42800000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 64.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x2 - :initial-value #x42000000 - :random-range 1 - :random-mult #x42000000 + :initial-valuef 32.0 + :random-rangef (the-as float #x1) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x4275c28f - :random-range #x41da740e - :random-mult #x3f800000 + :initial-valuef 61.44 + :random-rangef 27.306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1062288578 - :random-range #x402ec33e - :random-mult #x3f800000 + :initial-valuef -5.4613333 + :random-rangef 2.7306666 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x45aaaaab - :random-range #x460e38e4 - :random-mult #x3f800000 + :initial-valuef 5461.3335 + :random-rangef 9102.223 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :initial-value #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -2659,126 +2708,129 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43440000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 196.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43440000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 196.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x43440000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 196.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1104947446 - :random-mult #x3f800000 + :initial-valuef -0.16 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -2791,126 +2843,129 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41400000 - :random-mult #x3f800000 + :initial-valuef 12.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x44800000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 1024.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43440000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 196.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43440000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 196.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x43440000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 196.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x435a740e - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 218.45334 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x40da740e - :random-mult #x3f800000 + :initial-valuef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1101368306 - :random-mult #x3f800000 + :initial-valuef -0.21333334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x96 - :random-mult 1 + :initial-valuef (the-as float #x96) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -2923,123 +2978,126 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 20 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200400) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200400) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x438f5c29 - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 286.72 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x2 - :initial-value #x43440000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 196.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x43440000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 196.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x2 - :initial-value #x43440000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 196.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x4275c28f - :random-range #x41da740e - :random-mult #x3f800000 + :initial-valuef 61.44 + :random-rangef 27.306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1062288578 - :random-range #x402ec33e - :random-mult #x3f800000 + :initial-valuef -5.4613333 + :random-rangef 2.7306666 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x45aaaaab - :random-range #x460e38e4 - :random-mult #x3f800000 + :initial-valuef 5461.3335 + :random-rangef 9102.223 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :initial-value #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -3088,125 +3146,128 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :random-range #x42000000 - :random-mult #x3f800000 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1104947446 - :random-mult #x3f800000 + :initial-valuef -0.16 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -3219,125 +3280,128 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41400000 - :random-mult #x3f800000 + :initial-valuef 12.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x44800000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 1024.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :random-range #x42000000 - :random-mult #x3f800000 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x435a740e - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 218.45334 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x40da740e - :random-mult #x3f800000 + :initial-valuef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1101368306 - :random-mult #x3f800000 + :initial-valuef -0.21333334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x96 - :random-mult 1 + :initial-valuef (the-as float #x96) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -3350,128 +3414,131 @@ (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 #x201700) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x201700) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4419999a - :random-range #x44b33333 - :random-mult #x3f800000 + :initial-valuef 614.4 + :random-rangef 1433.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x1 - :initial-value #x4419999a - :random-mult #x3f800000 + :initial-valuef 614.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :random-range #x40000000 - :random-mult #x42800000 + :random-rangef 2.0 + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x42800000 - :random-range 2 - :random-mult #x42800000 + :initial-valuef 64.0 + :random-rangef (the-as float #x2) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x4275c28f - :random-range #x41da740e - :random-mult #x3f800000 + :initial-valuef 61.44 + :random-rangef 27.306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1009093618 - :random-range #x445a740e - :random-mult #x3f800000 + :initial-valuef -436.90668 + :random-rangef 873.81335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1062288578 - :random-range #x405a740e - :random-mult #x3f800000 + :initial-valuef -5.4613333 + :random-rangef 3.4133334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x45aaaaab - :random-range #x460e38e4 - :random-mult #x3f800000 + :initial-valuef 5461.3335 + :random-rangef 9102.223 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :initial-value #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -3501,124 +3568,127 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :random-range #x42000000 - :random-mult #x3f800000 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1104947446 - :random-mult #x3f800000 + :initial-valuef -0.16 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -3631,124 +3701,127 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41400000 - :random-mult #x3f800000 + :initial-valuef 12.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x44800000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 1024.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :random-range #x42000000 - :random-mult #x3f800000 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x435a740e - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 218.45334 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x40da740e - :random-mult #x3f800000 + :initial-valuef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1101368306 - :random-mult #x3f800000 + :initial-valuef -0.21333334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x96 - :random-mult 1 + :initial-valuef (the-as float #x96) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -3797,124 +3870,127 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42c00000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1104947446 - :random-mult #x3f800000 + :initial-valuef -0.16 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -3927,124 +4003,127 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41400000 - :random-mult #x3f800000 + :initial-valuef 12.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x44800000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 1024.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42c00000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x435a740e - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 218.45334 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x40da740e - :random-mult #x3f800000 + :initial-valuef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1101368306 - :random-mult #x3f800000 + :initial-valuef -0.21333334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x96 - :random-mult 1 + :initial-valuef (the-as float #x96) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -4074,114 +4153,117 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 19 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x428c0000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 70.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42200000 - :random-range #x41a00000 - :random-mult #x3f800000 + :initial-valuef 40.0 + :random-rangef 20.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41c00000 - :random-range #x41c00000 - :random-mult #x3f800000 + :initial-valuef 24.0 + :random-rangef 24.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1104947446 - :random-mult #x3f800000 + :initial-valuef -0.16 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -4194,126 +4276,129 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41400000 - :random-mult #x3f800000 + :initial-valuef 12.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x44800000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 1024.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x428c0000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 70.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42200000 - :random-range #x41a00000 - :random-mult #x3f800000 + :initial-valuef 40.0 + :random-rangef 20.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x435a740e - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 218.45334 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x40da740e - :random-mult #x3f800000 + :initial-valuef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1101368306 - :random-mult #x3f800000 + :initial-valuef -0.21333334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1079065794 - :random-mult #x3f800000 + :initial-valuef -1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x96 - :random-mult 1 + :initial-valuef (the-as float #x96) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x1004 - :random-mult 1 + :initial-valuef (the-as float #x1004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -4358,94 +4443,97 @@ (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 #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41000000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42c00000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1091957087 - :random-mult #x3f800000 + :initial-valuef -0.45714286 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f770a3d - :random-mult #x3f800000 + :initial-valuef 0.965 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x69 - :random-mult 1 + :initial-valuef (the-as float #x69) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -4507,7 +4595,10 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 14 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200e00) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200e00) + ) (new 'static 'sp-field-init-spec :field #x4 :flags #x5 @@ -4516,66 +4607,66 @@ (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -998244352 - :random-mult #x3f800000 + :initial-valuef -1024.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4519999a - :random-mult #x3f800000 + :initial-valuef 2457.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1114529100 - :random-mult #x3f800000 + :initial-valuef -0.07111111 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x41a - :random-mult 1 + :initial-valuef (the-as float #x41a) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -4588,96 +4679,99 @@ (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 #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41000000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43440000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 196.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43440000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 196.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x43440000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 196.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41c00000 - :random-range #x41c00000 - :random-mult #x3f800000 + :initial-valuef 24.0 + :random-rangef 24.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1091957087 - :random-mult #x3f800000 + :initial-valuef -0.45714286 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f770a3d - :random-mult #x3f800000 + :initial-valuef 0.965 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x69 - :random-mult 1 + :initial-valuef (the-as float #x69) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -4756,121 +4850,124 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 22 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41000000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -981467136 - :random-mult #x3f800000 + :initial-valuef -4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :random-range #x42000000 - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #x15 - :flags #x1 - :random-mult #x3f800000 + :random-rangef 32.0 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x15 :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :random-range -1051036658 - :random-mult #x3f800000 + :random-rangef -13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x40da740e - :random-mult #x3f800000 + :initial-valuef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value #x3e23d70a - :random-mult #x3f800000 + :initial-valuef 0.16 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1098133659 - :random-mult #x3f800000 + :initial-valuef -0.27306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x384 - :random-mult 1 + :initial-valuef (the-as float #x384) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x32 - :initial-value 75 - :random-range 74 - :random-mult 1 + :initial-valuef (the-as float #x4b) + :random-rangef (the-as float #x4a) + :random-multf (the-as float #x1) + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-valuef (the-as float #x5a) ) - (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 90) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x46800000 - :random-mult #x3f800000 + :initial-valuef 16384.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :random-range #x46400000 - :random-mult #x3f800000 + :random-rangef 12288.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -4883,18 +4980,18 @@ (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 #x24 :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x32 - :initial-value #x96 - :random-range #x95 - :random-mult 1 + :initial-valuef (the-as float #x96) + :random-rangef (the-as float #x95) + :random-multf (the-as float #x1) + ) + (new 'static 'sp-field-init-spec + :field #x33 + :flags #x6 + :initial-valuef (the-as float #x5b) ) - (new 'static 'sp-field-init-spec :field #x33 :flags #x6 :initial-value 91) (new 'static 'sp-field-init-spec :field #x43) ) ) @@ -4909,8 +5006,8 @@ (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1113336054 - :random-mult #x3f800000 + :initial-valuef -0.08 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -4955,94 +5052,97 @@ (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 #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41000000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :random-range #x42000000 - :random-mult #x3f800000 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1091957087 - :random-mult #x3f800000 + :initial-valuef -0.45714286 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f770a3d - :random-mult #x3f800000 + :initial-valuef 0.965 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x69 - :random-mult 1 + :initial-valuef (the-as float #x69) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -5087,96 +5187,99 @@ (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 #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41000000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x428c0000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 70.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42200000 - :random-range #x41a00000 - :random-mult #x3f800000 + :initial-valuef 40.0 + :random-rangef 20.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1091957087 - :random-mult #x3f800000 + :initial-valuef -0.45714286 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f770a3d - :random-mult #x3f800000 + :initial-valuef 0.965 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x69 - :random-mult 1 + :initial-valuef (the-as float #x69) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -5238,95 +5341,98 @@ (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 #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41000000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :random-range #x42000000 - :random-mult #x3f800000 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1091957087 - :random-mult #x3f800000 + :initial-valuef -0.45714286 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f770a3d - :random-mult #x3f800000 + :initial-valuef 0.965 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x69 - :random-mult 1 + :initial-valuef (the-as float #x69) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -5339,7 +5445,10 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 14 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200e00) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200e00) + ) (new 'static 'sp-field-init-spec :field #x4 :flags #x5 @@ -5348,66 +5457,66 @@ (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -998244352 - :random-mult #x3f800000 + :initial-valuef -1024.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4519999a - :random-mult #x3f800000 + :initial-valuef 2457.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42400000 - :random-mult #x3f800000 + :initial-valuef 48.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1118145522 - :random-mult #x3f800000 + :initial-valuef -0.053333335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x41a - :random-mult 1 + :initial-valuef (the-as float #x41a) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -5469,95 +5578,98 @@ (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 #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41000000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1091957087 - :random-mult #x3f800000 + :initial-valuef -0.45714286 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f770a3d - :random-mult #x3f800000 + :initial-valuef 0.965 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x69 - :random-mult 1 + :initial-valuef (the-as float #x69) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -5570,7 +5682,10 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 14 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200e00) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200e00) + ) (new 'static 'sp-field-init-spec :field #x4 :flags #x5 @@ -5579,66 +5694,66 @@ (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -998244352 - :random-mult #x3f800000 + :initial-valuef -1024.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4519999a - :random-mult #x3f800000 + :initial-valuef 2457.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1122917708 - :random-mult #x3f800000 + :initial-valuef -0.035555556 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x41a - :random-mult 1 + :initial-valuef (the-as float #x41a) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -5699,95 +5814,98 @@ (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 #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41000000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1091957087 - :random-mult #x3f800000 + :initial-valuef -0.45714286 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f770a3d - :random-mult #x3f800000 + :initial-valuef 0.965 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x69 - :random-mult 1 + :initial-valuef (the-as float #x69) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -5800,7 +5918,10 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 14 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200e00) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200e00) + ) (new 'static 'sp-field-init-spec :field #x4 :flags #x5 @@ -5809,66 +5930,66 @@ (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -998244352 - :random-mult #x3f800000 + :initial-valuef -1024.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4519999a - :random-mult #x3f800000 + :initial-valuef 2457.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1122917708 - :random-mult #x3f800000 + :initial-valuef -0.035555556 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x41a - :random-mult 1 + :initial-valuef (the-as float #x41a) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -5881,118 +6002,121 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 19 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200400) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200400) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :random-range #x40c00000 - :random-mult #x3f800000 + :random-rangef 6.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x438f5c29 - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 286.72 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x2 - :initial-value #x43000000 - :random-range 2 - :random-mult #x42000000 + :initial-valuef 128.0 + :random-rangef (the-as float #x2) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x42800000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 64.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x2 - :initial-value #x42000000 - :random-range 1 - :random-mult #x42000000 + :initial-valuef 32.0 + :random-rangef (the-as float #x1) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x19 :flags #x1 - :initial-value -1067813874 - :random-range #x40da740e - :random-mult #x3f800000 + :initial-valuef -3.4133334 + :random-rangef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x41a3d70a - :random-range #x41da740e - :random-mult #x3f800000 + :initial-valuef 20.48 + :random-rangef 27.306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1b :flags #x1 - :initial-value -1067813874 - :random-range #x40da740e - :random-mult #x3f800000 + :initial-valuef -3.4133334 + :random-rangef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1070677186 - :random-range #x3faec33e - :random-mult #x3f800000 + :initial-valuef -2.7306666 + :random-rangef 1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -6005,118 +6129,121 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 19 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200400) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200400) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :random-range #x40c00000 - :random-mult #x3f800000 + :random-rangef 6.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x438f5c29 - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 286.72 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x2 - :initial-value #x43000000 - :random-range 2 - :random-mult #x42000000 + :initial-valuef 128.0 + :random-rangef (the-as float #x2) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x42800000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 64.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x2 - :initial-value #x42000000 - :random-range 1 - :random-mult #x42000000 + :initial-valuef 32.0 + :random-rangef (the-as float #x1) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x19 :flags #x1 - :initial-value -1067813874 - :random-range #x40da740e - :random-mult #x3f800000 + :initial-valuef -3.4133334 + :random-rangef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x41a3d70a - :random-range #x41da740e - :random-mult #x3f800000 + :initial-valuef 20.48 + :random-rangef 27.306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1b :flags #x1 - :initial-value -1067813874 - :random-range #x40da740e - :random-mult #x3f800000 + :initial-valuef -3.4133334 + :random-rangef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1070677186 - :random-range #x3faec33e - :random-mult #x3f800000 + :initial-valuef -2.7306666 + :random-rangef 1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -6129,123 +6256,126 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 20 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201700) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x201700) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :random-range #x40000000 - :random-mult #x3f800000 + :random-rangef 2.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x444ccccd - :random-range #x444ccccd - :random-mult #x3f800000 + :initial-valuef 819.2 + :random-rangef 819.2 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x1 - :initial-value #x43cccccd - :random-mult #x3f800000 + :initial-valuef 409.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :random-range #x40000000 - :random-mult #x42800000 + :random-rangef 2.0 + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x42800000 - :random-range 2 - :random-mult #x42800000 + :initial-valuef 64.0 + :random-rangef (the-as float #x2) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x19 :flags #x1 - :initial-value -1067813874 - :random-range #x40da740e - :random-mult #x3f800000 + :initial-valuef -3.4133334 + :random-rangef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x41a3d70a - :random-range #x41da740e - :random-mult #x3f800000 + :initial-valuef 20.48 + :random-rangef 27.306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1b :flags #x1 - :initial-value -1067813874 - :random-range #x40da740e - :random-mult #x3f800000 + :initial-valuef -3.4133334 + :random-rangef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1009093618 - :random-range #x445a740e - :random-mult #x3f800000 + :initial-valuef -436.90668 + :random-rangef 873.81335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1070677186 - :random-range #x3faec33e - :random-mult #x3f800000 + :initial-valuef -2.7306666 + :random-rangef 1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -6258,118 +6388,121 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 19 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200400) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200400) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :random-range #x40c00000 - :random-mult #x3f800000 + :random-rangef 6.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x438f5c29 - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 286.72 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x2 - :initial-value #x43440000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 196.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x43440000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 196.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x2 - :initial-value #x43440000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 196.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x19 :flags #x1 - :initial-value -1067813874 - :random-range #x40da740e - :random-mult #x3f800000 + :initial-valuef -3.4133334 + :random-rangef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x41a3d70a - :random-range #x41da740e - :random-mult #x3f800000 + :initial-valuef 20.48 + :random-rangef 27.306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1b :flags #x1 - :initial-value -1067813874 - :random-range #x40da740e - :random-mult #x3f800000 + :initial-valuef -3.4133334 + :random-rangef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1070677186 - :random-range #x3faec33e - :random-mult #x3f800000 + :initial-valuef -2.7306666 + :random-rangef 1.3653333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -6432,126 +6565,129 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x40c00000 - :random-range #x40c00000 - :random-mult #x3f800000 + :initial-valuef 6.0 + :random-rangef 6.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4519999a - :random-range #x4519999a - :random-mult #x3f800000 + :initial-valuef 2457.6 + :random-rangef 2457.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1103754399 - :random-mult #x3f800000 + :initial-valuef -0.17777778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1098133659 - :random-mult #x3f800000 + :initial-valuef -0.27306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f70a3d7 - :random-mult #x3f800000 + :initial-valuef 0.94 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #xb4 - :random-mult 1 + :initial-valuef (the-as float #xb4) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -6564,123 +6700,126 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 20 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200400) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200400) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :random-range #x41000000 - :random-mult #x3f800000 + :random-rangef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x438f5c29 - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 286.72 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x2 - :initial-value #x43000000 - :random-range 2 - :random-mult #x42000000 + :initial-valuef 128.0 + :random-rangef (the-as float #x2) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x42800000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 64.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x2 - :initial-value #x42000000 - :random-range 1 - :random-mult #x42000000 + :initial-valuef 32.0 + :random-rangef (the-as float #x1) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42088889 - :random-range #x415a740e - :random-mult #x3f800000 + :initial-valuef 34.133335 + :random-rangef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1065151889 - :random-range #x4003126f - :random-mult #x3f800000 + :initial-valuef -4.096 + :random-rangef 2.048 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x45aaaaab - :random-range #x460e38e4 - :random-mult #x3f800000 + :initial-valuef 5461.3335 + :random-rangef 9102.223 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :initial-value #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -6710,126 +6849,129 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x40c00000 - :random-range #x40c00000 - :random-mult #x3f800000 + :initial-valuef 6.0 + :random-rangef 6.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4519999a - :random-range #x4519999a - :random-mult #x3f800000 + :initial-valuef 2457.6 + :random-rangef 2457.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1103754399 - :random-mult #x3f800000 + :initial-valuef -0.17777778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1098133659 - :random-mult #x3f800000 + :initial-valuef -0.27306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f70a3d7 - :random-mult #x3f800000 + :initial-valuef 0.94 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #xb4 - :random-mult 1 + :initial-valuef (the-as float #xb4) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -6842,123 +6984,126 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 20 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200400) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200400) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :random-range #x41000000 - :random-mult #x3f800000 + :random-rangef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x438f5c29 - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 286.72 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x2 - :initial-value #x43000000 - :random-range 2 - :random-mult #x42000000 + :initial-valuef 128.0 + :random-rangef (the-as float #x2) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x42800000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 64.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x2 - :initial-value #x42000000 - :random-range 1 - :random-mult #x42000000 + :initial-valuef 32.0 + :random-rangef (the-as float #x1) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42088889 - :random-range #x415a740e - :random-mult #x3f800000 + :initial-valuef 34.133335 + :random-rangef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1065151889 - :random-range #x4003126f - :random-mult #x3f800000 + :initial-valuef -4.096 + :random-rangef 2.048 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x45aaaaab - :random-range #x460e38e4 - :random-mult #x3f800000 + :initial-valuef 5461.3335 + :random-rangef 9102.223 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :initial-value #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -6988,126 +7133,129 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x40c00000 - :random-range #x40c00000 - :random-mult #x3f800000 + :initial-valuef 6.0 + :random-rangef 6.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4519999a - :random-range #x4519999a - :random-mult #x3f800000 + :initial-valuef 2457.6 + :random-rangef 2457.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :random-range #x42000000 - :random-mult #x3f800000 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1103754399 - :random-mult #x3f800000 + :initial-valuef -0.17777778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1098133659 - :random-mult #x3f800000 + :initial-valuef -0.27306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f70a3d7 - :random-mult #x3f800000 + :initial-valuef 0.94 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #xb4 - :random-mult 1 + :initial-valuef (the-as float #xb4) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -7120,128 +7268,131 @@ (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 #x201700) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x201700) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :random-range #x41000000 - :random-mult #x3f800000 + :random-rangef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4419999a - :random-range #x44b33333 - :random-mult #x3f800000 + :initial-valuef 614.4 + :random-rangef 1433.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x1 - :initial-value #x4419999a - :random-mult #x3f800000 + :initial-valuef 614.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :random-range #x40000000 - :random-mult #x42800000 + :random-rangef 2.0 + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x42800000 - :random-range 2 - :random-mult #x42800000 + :initial-valuef 64.0 + :random-rangef (the-as float #x2) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42088889 - :random-range #x415a740e - :random-mult #x3f800000 + :initial-valuef 34.133335 + :random-rangef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1009093618 - :random-range #x445a740e - :random-mult #x3f800000 + :initial-valuef -436.90668 + :random-rangef 873.81335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1065151889 - :random-range #x4003126f - :random-mult #x3f800000 + :initial-valuef -4.096 + :random-rangef 2.048 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x45aaaaab - :random-range #x460e38e4 - :random-mult #x3f800000 + :initial-valuef 5461.3335 + :random-rangef 9102.223 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :initial-value #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -7270,125 +7421,128 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x40c00000 - :random-range #x40c00000 - :random-mult #x3f800000 + :initial-valuef 6.0 + :random-rangef 6.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4519999a - :random-range #x4519999a - :random-mult #x3f800000 + :initial-valuef 2457.6 + :random-rangef 2457.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42c00000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1103754399 - :random-mult #x3f800000 + :initial-valuef -0.17777778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1098133659 - :random-mult #x3f800000 + :initial-valuef -0.27306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f70a3d7 - :random-mult #x3f800000 + :initial-valuef 0.94 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #xb4 - :random-mult 1 + :initial-valuef (the-as float #xb4) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -7417,127 +7571,130 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x40c00000 - :random-range #x40c00000 - :random-mult #x3f800000 + :initial-valuef 6.0 + :random-rangef 6.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4519999a - :random-range #x4519999a - :random-mult #x3f800000 + :initial-valuef 2457.6 + :random-rangef 2457.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x428c0000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 70.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42200000 - :random-range #x41a00000 - :random-mult #x3f800000 + :initial-valuef 40.0 + :random-rangef 20.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1103754399 - :random-mult #x3f800000 + :initial-valuef -0.17777778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1098133659 - :random-mult #x3f800000 + :initial-valuef -0.27306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f70a3d7 - :random-mult #x3f800000 + :initial-valuef 0.94 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #xb4 - :random-mult 1 + :initial-valuef (the-as float #xb4) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -7566,127 +7723,130 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x40c00000 - :random-range #x40c00000 - :random-mult #x3f800000 + :initial-valuef 6.0 + :random-rangef 6.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4519999a - :random-range #x4519999a - :random-mult #x3f800000 + :initial-valuef 2457.6 + :random-rangef 2457.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x2 - :initial-value #x43440000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 196.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x43440000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 196.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x2 - :initial-value #x43440000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 196.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1103754399 - :random-mult #x3f800000 + :initial-valuef -0.17777778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1098133659 - :random-mult #x3f800000 + :initial-valuef -0.27306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f70a3d7 - :random-mult #x3f800000 + :initial-valuef 0.94 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #xb4 - :random-mult 1 + :initial-valuef (the-as float #xb4) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -7731,125 +7891,128 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x40c00000 - :random-range #x40c00000 - :random-mult #x3f800000 + :initial-valuef 6.0 + :random-rangef 6.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4519999a - :random-range #x4519999a - :random-mult #x3f800000 + :initial-valuef 2457.6 + :random-rangef 2457.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :random-range #x42000000 - :random-mult #x3f800000 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x42a3d70a - :random-range #x4223d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-rangef 40.96 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1103754399 - :random-mult #x3f800000 + :initial-valuef -0.17777778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1098133659 - :random-mult #x3f800000 + :initial-valuef -0.27306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f70a3d7 - :random-mult #x3f800000 + :initial-valuef 0.94 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #xb4 - :random-mult 1 + :initial-valuef (the-as float #xb4) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45aaaaab - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -7878,97 +8041,100 @@ (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 #x200400) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200400) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :random-range #x41000000 - :random-mult #x3f800000 + :random-rangef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x438f5c29 - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 286.72 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x2 - :initial-value #x43000000 - :random-range 2 - :random-mult #x42000000 + :initial-valuef 128.0 + :random-rangef (the-as float #x2) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x42800000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 64.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x2 - :initial-value #x42000000 - :random-range 1 - :random-mult #x42000000 + :initial-valuef 32.0 + :random-rangef (the-as float #x1) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1062288578 - :random-range #x405a740e - :random-mult #x3f800000 + :initial-valuef -5.4613333 + :random-rangef 3.4133334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -7981,97 +8147,100 @@ (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 #x200400) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200400) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :random-range #x41000000 - :random-mult #x3f800000 + :random-rangef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x438f5c29 - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 286.72 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x2 - :initial-value #x43000000 - :random-range 2 - :random-mult #x42000000 + :initial-valuef 128.0 + :random-rangef (the-as float #x2) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x42800000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 64.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x2 - :initial-value #x42000000 - :random-range 1 - :random-mult #x42000000 + :initial-valuef 32.0 + :random-rangef (the-as float #x1) + :random-multf 32.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1062288578 - :random-range #x405a740e - :random-mult #x3f800000 + :initial-valuef -5.4613333 + :random-rangef 3.4133334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -8084,97 +8253,100 @@ (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 #x200400) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200400) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :random-range #x41000000 - :random-mult #x3f800000 + :random-rangef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x438f5c29 - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 286.72 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x2 - :initial-value #x43440000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 196.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x43440000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 196.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x2 - :initial-value #x43440000 - :random-range 1 - :random-mult #x42800000 + :initial-valuef 196.0 + :random-rangef (the-as float #x1) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1062288578 - :random-range #x405a740e - :random-mult #x3f800000 + :initial-valuef -5.4613333 + :random-rangef 3.4133334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -8187,102 +8359,105 @@ (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 #x201700) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x201700) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :random-range #x41000000 - :random-mult #x3f800000 + :random-rangef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -1009988403 - :random-range #x44cccccd - :random-mult #x3f800000 + :initial-valuef -409.6 + :random-rangef 1638.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -993211187 - :random-range #x454ccccd - :random-mult #x3f800000 + :initial-valuef -1638.4 + :random-rangef 3276.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x4419999a - :random-range #x44b33333 - :random-mult #x3f800000 + :initial-valuef 614.4 + :random-rangef 1433.6 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x1 - :initial-value #x4419999a - :random-mult #x3f800000 + :initial-valuef 614.4 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :random-range #x40000000 - :random-mult #x42800000 + :random-rangef 2.0 + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x2 - :initial-value #x42800000 - :random-range 2 - :random-mult #x42800000 + :initial-valuef 64.0 + :random-rangef (the-as float #x2) + :random-multf 64.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1009093618 - :random-range #x445a740e - :random-mult #x3f800000 + :initial-valuef -436.90668 + :random-rangef 873.81335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1092979698 - :random-mult #x3f800000 + :initial-valuef -0.42666668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1062288578 - :random-range #x405a740e - :random-mult #x3f800000 + :initial-valuef -5.4613333 + :random-rangef 3.4133334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x12c - :random-mult 1 + :initial-valuef (the-as float #x12c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -8546,98 +8721,101 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 17 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200f00) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200f00) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41000000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x444ccccd - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 819.2 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43800000 - :random-mult #x3f800000 + :initial-valuef 256.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :random-range #x43000000 - :random-mult #x3f800000 + :random-rangef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x43000000 - :random-range #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-rangef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x425a740e - :random-range #x4323d70a - :random-mult #x3f800000 + :initial-valuef 54.613335 + :random-rangef 163.84 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value -1055331626 - :random-mult #x3f800000 + :initial-valuef -9.557333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1062288578 - :random-mult #x3f800000 + :initial-valuef -5.4613333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x168 - :random-mult 1 + :initial-valuef (the-as float #x168) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x4009 - :random-mult 1 + :initial-valuef (the-as float #x4009) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :random-range #x462aaaab - :random-mult #x3f800000 + :random-rangef 10922.667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :initial-value #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -8650,133 +8828,132 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 23 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x40a00000 - :random-mult #x3f800000 + :initial-valuef 5.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :random-range #x45000000 - :random-mult #x3f800000 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :random-range #x46400000 - :random-mult #x3f800000 + :random-rangef 12288.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x46000000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 8192.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :random-range #x43000000 - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #x14 - :flags #x1 - :random-mult #x3f800000 + :random-rangef 128.0 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x14 :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42000000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x435a740e - :random-range #x435a740e - :random-mult #x3f800000 + :initial-valuef 218.45334 + :random-rangef 218.45334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x42c0c0c1 - :random-mult #x3f800000 + :initial-valuef 96.37647 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1025870834 - :random-range #x435a740e - :random-mult #x3f800000 + :initial-valuef -109.22667 + :random-rangef 218.45334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1077886783 - :random-mult #x3f800000 + :initial-valuef -1.5058824 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f7ae148 - :random-mult #x3f800000 + :initial-valuef 0.98 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value 81 - :random-mult 1 + :initial-valuef (the-as float #x51) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x400c - :random-mult 1 + :initial-valuef (the-as float #x400c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :random-range #x45aaaaab - :random-mult #x3f800000 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3f :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -8789,134 +8966,133 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 23 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value #x45000000 - :random-range #x46000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 8192.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value #x45000000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-range #x46000000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-rangef 8192.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :random-range #x43000000 - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #x14 - :flags #x1 - :random-mult #x3f800000 + :random-rangef 128.0 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x14 :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42000000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :random-range #x40da740e - :random-mult #x3f800000 + :random-rangef 6.826667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x43360b60 - :random-mult #x3f800000 + :initial-valuef 182.04443 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1025870834 - :random-range #x435a740e - :random-mult #x3f800000 + :initial-valuef -109.22667 + :random-rangef 218.45334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1070199968 - :random-mult #x3f800000 + :initial-valuef -2.8444443 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f7ae148 - :random-mult #x3f800000 + :initial-valuef 0.98 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value 42 - :random-mult 1 + :initial-valuef (the-as float #x2a) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x400c - :random-mult 1 + :initial-valuef (the-as float #x400c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x46800000 - :random-mult #x3f800000 + :initial-valuef 16384.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3f :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -8929,163 +9105,162 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 28 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41000000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xa :flags #x1 - :initial-value -981467136 - :random-range #x46000000 - :random-mult #x3f800000 + :initial-valuef -4096.0 + :random-rangef 8192.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :random-range #x46400000 - :random-mult #x3f800000 + :random-rangef 12288.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xc :flags #x1 - :initial-value -981467136 - :random-range #x46000000 - :random-mult #x3f800000 + :initial-valuef -4096.0 + :random-rangef 8192.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x46000000 - :random-range #x46400000 - :random-mult #x3f800000 + :initial-valuef 8192.0 + :random-rangef 12288.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x437f0000 - :random-mult #x3f800000 + :initial-valuef 255.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x437f0000 - :random-mult #x3f800000 + :initial-valuef 255.0 + :random-multf 1.0 ) (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 + :initial-valuef 255.0 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x15 :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x425a740e - :random-range #x425a740e - :random-mult #x3f800000 + :initial-valuef 54.613335 + :random-rangef 54.613335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x4211a2b4 - :random-mult #x3f800000 + :initial-valuef 36.40889 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1025870834 - :random-range #x435a740e - :random-mult #x3f800000 + :initial-valuef -109.22667 + :random-rangef 218.45334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x21 :flags #x1 - :initial-value -1089400559 - :random-mult #x3f800000 + :initial-valuef -0.56666666 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x22 :flags #x1 - :initial-value -1089400559 - :random-mult #x3f800000 + :initial-valuef -0.56666666 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x23 :flags #x1 - :initial-value -1089400559 - :random-mult #x3f800000 + :initial-valuef -0.56666666 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value #x3e19999a - :random-mult #x3f800000 + :initial-valuef 0.15 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f7851ec - :random-mult #x3f800000 + :initial-valuef 0.97 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x1c2 - :random-mult 1 + :initial-valuef (the-as float #x1c2) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x4004 - :random-mult 1 + :initial-valuef (the-as float #x4004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x32 - :initial-value 81 - :random-range 80 - :random-mult 1 + :initial-valuef (the-as float #x51) + :random-rangef (the-as float #x50) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x33 :flags #x6 - :initial-value #x7d7 + :initial-valuef (the-as float #x7d7) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :random-range #x45aaaaab - :random-mult #x3f800000 + :random-rangef 5461.3335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -9101,8 +9276,8 @@ (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1113336054 - :random-mult #x3f800000 + :initial-valuef -0.08 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -9115,117 +9290,116 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 20 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45c00000 - :random-range #x46000000 - :random-mult #x3f800000 + :initial-valuef 6144.0 + :random-rangef 8192.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42000000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42000000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42000000 - :random-range #x42000000 - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #x15 - :flags #x1 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-rangef 32.0 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x15 :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x415a740e - :random-range #x41da740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-rangef 27.306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-range #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-rangef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value #x3f5a740e - :random-mult #x3f800000 + :initial-valuef 0.85333335 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f7ae148 - :random-mult #x3f800000 + :initial-valuef 0.98 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x1c2 - :random-mult 1 + :initial-valuef (the-as float #x1c2) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x4004 - :random-mult 1 + :initial-valuef (the-as float #x4004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x32 - :initial-value 15 - :random-range 59 - :random-mult 1 + :initial-valuef (the-as float #xf) + :random-rangef (the-as float #x3b) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x33 :flags #x6 - :initial-value #x7d8 + :initial-valuef (the-as float #x7d8) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -9241,8 +9415,8 @@ (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1097751884 - :random-mult #x3f800000 + :initial-valuef -0.28444445 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -9329,7 +9503,10 @@ (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 #x200a00) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200a00) + ) (new 'static 'sp-field-init-spec :field #x4 :flags #x5 @@ -9338,90 +9515,90 @@ (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x45000000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 2048.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42dc0000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 110.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42c00000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41000000 - :random-range #x42200000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-rangef 40.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x415a740e - :random-range #x415a740e - :random-mult #x3f800000 + :initial-valuef 13.653334 + :random-rangef 13.653334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1102263091 - :random-mult #x3f800000 + :initial-valuef -0.2 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #xf0 - :random-mult 1 + :initial-valuef (the-as float #xf0) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x400c - :random-mult 1 + :initial-valuef (the-as float #x400c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x30 :flags #x1 - :initial-value -973078528 - :random-mult #x3f800000 + :initial-valuef -8192.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -9485,58 +9662,58 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x40800000) + (new 'static 'sp-field-init-spec :field #x1 :initial-valuef 4.0) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x46600000 - :random-mult #x3f800000 + :initial-valuef 14336.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x1 - :initial-value #x47500000 - :random-mult #x3f800000 + :initial-valuef 53248.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value -1 - :random-mult 1 + :initial-valuef (the-as float #xffffffff) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x2204 - :random-mult 1 + :initial-valuef (the-as float #x2204) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x31 @@ -9554,64 +9731,64 @@ (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 #x40800000) + (new 'static 'sp-field-init-spec :field #x1 :initial-valuef 4.0) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x46600000 - :random-mult #x3f800000 + :initial-valuef 14336.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :initial-value #x47000000 - :random-mult #x3f800000 + :initial-valuef 32768.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x1 - :initial-value #x47500000 - :random-mult #x3f800000 + :initial-valuef 53248.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value -1 - :random-mult 1 + :initial-valuef (the-as float #xffffffff) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x2204 - :random-mult 1 + :initial-valuef (the-as float #x2204) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x31 @@ -9629,58 +9806,58 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x40800400) + (new 'static 'sp-field-init-spec :field #x1 :initial-valuef 4.0004883) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45800000 - :random-mult #x3f800000 + :initial-valuef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value -1 - :random-mult 1 + :initial-valuef (the-as float #xffffffff) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x2200 - :random-mult 1 + :initial-valuef (the-as float #x2200) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x31 @@ -9691,3 +9868,7 @@ ) ) ) + + + + diff --git a/goal_src/engine/ui/hud-h.gc b/goal_src/engine/ui/hud-h.gc index 6faa8c2ddd..62d216fc81 100644 --- a/goal_src/engine/ui/hud-h.gc +++ b/goal_src/engine/ui/hud-h.gc @@ -116,5 +116,6 @@ (defun-extern activate-hud process none) (defun-extern activate-orb-all int int) - +(defun-extern hide-bottom-hud none) +(defun-extern bottom-hud-hidden? symbol) diff --git a/goal_src/engine/ui/text-h.gc b/goal_src/engine/ui/text-h.gc index 1a70111f9f..c7daa9b09f 100644 --- a/goal_src/engine/ui/text-h.gc +++ b/goal_src/engine/ui/text-h.gc @@ -152,7 +152,6 @@ (misty-teetertotter-bonk-dax-tutorial #x2a4) (daxter-blue-eco-plat-tutorial #x2a7) - (firecanyon-collect-cells-text #x2b3) @@ -240,6 +239,10 @@ (ogre-buzzer #x601) (ogre-boss #x603) + (assistant-voicebox-intro-ogre-race #x605) + + (sidekick-speech-hint-ogre-race #x61c) + (lavatube-end #x700) (lavatube-buzzer #x701) diff --git a/goal_src/levels/beach/beach-rocks.gc b/goal_src/levels/beach/beach-rocks.gc index 242fbb99a1..595ebaa1f4 100644 --- a/goal_src/levels/beach/beach-rocks.gc +++ b/goal_src/levels/beach/beach-rocks.gc @@ -50,133 +50,132 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 22 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201d00) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x201d00) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x40400000 - :random-range #x40c00000 - :random-mult #x3f800000 + :initial-valuef 3.0 + :random-rangef 6.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :random-range -964689920 - :random-mult #x3f800000 + :random-rangef -16384.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x44800000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 1024.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x1 - :initial-value #x44800000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 1024.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42c00000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x42c00000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 96.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :random-range #x42000000 - :random-mult #x3f800000 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x435a740e - :random-range #x435a740e - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #x1c - :flags #x1 - :random-mult #x3f800000 + :initial-valuef 218.45334 + :random-rangef 218.45334 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x1c :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1017482226 - :random-range #x43da740e - :random-mult #x3f800000 + :initial-valuef -218.45334 + :random-rangef 436.90668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1053184142 - :random-range -1056047454 - :random-mult #x3f800000 + :initial-valuef -11.605333 + :random-rangef -8.874666 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f7851ec - :random-mult #x3f800000 + :initial-valuef 0.97 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x5dc - :random-mult 1 + :initial-valuef (the-as float #x5dc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x46638e39 - :random-range #x470e38e4 - :random-mult #x3f800000 + :initial-valuef 14563.556 + :random-rangef 36408.89 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :random-range #x46a00000 - :random-mult #x3f800000 + :random-rangef 20480.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -189,139 +188,138 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 23 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201700) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x201700) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x41000000 - :random-range #x41800000 - :random-mult #x3f800000 + :initial-valuef 8.0 + :random-rangef 16.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :random-range -964689920 - :random-mult #x3f800000 + :random-rangef -16384.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x1 - :initial-value #x45000000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x42800000 - :random-range #x43000000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-range #x43000000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-rangef 128.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :random-range #x42800000 - :random-mult #x3f800000 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x435a740e - :random-range #x435a740e - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #x1c - :flags #x1 - :random-mult #x3f800000 + :initial-valuef 218.45334 + :random-rangef 218.45334 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x1c :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1017482226 - :random-range #x43da740e - :random-mult #x3f800000 + :initial-valuef -218.45334 + :random-rangef 436.90668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1112620226 - :random-mult #x3f800000 + :initial-valuef -0.08533333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1067813874 - :random-range -1056047454 - :random-mult #x3f800000 + :initial-valuef -3.4133334 + :random-rangef -8.874666 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f6e147b - :random-mult #x3f800000 + :initial-valuef 0.93 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x5dc - :random-mult 1 + :initial-valuef (the-as float #x5dc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x46638e39 - :random-range #x470e38e4 - :random-mult #x3f800000 + :initial-valuef 14563.556 + :random-rangef 36408.89 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :random-range #x46a00000 - :random-mult #x3f800000 + :random-rangef 20480.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -334,156 +332,159 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 26 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x3f800000 - :random-range #x40400000 - :random-mult #x3f800000 + :initial-valuef 1.0 + :random-rangef 3.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :random-range -964689920 - :random-mult #x3f800000 + :random-rangef -16384.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x46c00000 - :random-range #x46000000 - :random-mult #x3f800000 + :initial-valuef 24576.0 + :random-rangef 8192.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43400000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 192.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x435a740e - :random-range #x435a740e - :random-mult #x3f800000 + :initial-valuef 218.45334 + :random-rangef 218.45334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x4323d70a - :random-mult #x3f800000 + :initial-valuef 163.84 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x21 :flags #x1 - :initial-value -1121008834 - :random-mult #x3f800000 + :initial-valuef -0.042666666 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x22 :flags #x1 - :initial-value -1115998039 - :random-mult #x3f800000 + :initial-valuef -0.061333332 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x23 :flags #x1 - :initial-value -1121008834 - :random-mult #x3f800000 + :initial-valuef -0.042666666 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1123872145 - :random-mult #x3f800000 + :initial-valuef -0.032 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1073540497 - :random-range -1057993610 - :random-mult #x3f800000 + :initial-valuef -2.048 + :random-rangef -7.5093336 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x5dc - :random-mult 1 + :initial-valuef (the-as float #x5dc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :random-range #x46c00000 - :random-mult #x3f800000 + :random-rangef 24576.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -513,156 +514,159 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 26 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x40400000 - :random-range #x40400000 - :random-mult #x3f800000 + :initial-valuef 3.0 + :random-rangef 3.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :random-range -964689920 - :random-mult #x3f800000 + :random-rangef -16384.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x46e00000 - :random-range #x47100000 - :random-mult #x3f800000 + :initial-valuef 28672.0 + :random-rangef 36864.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43400000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 192.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42400000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 48.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x425a740e - :random-range #x41da740e - :random-mult #x3f800000 + :initial-valuef 54.613335 + :random-rangef 27.306667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x42da740e - :random-mult #x3f800000 + :initial-valuef 109.22667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x21 :flags #x1 - :initial-value -1109756914 - :random-mult #x3f800000 + :initial-valuef -0.10666667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x22 :flags #x1 - :initial-value -1105394838 - :random-mult #x3f800000 + :initial-valuef -0.15333334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x23 :flags #x1 - :initial-value -1109756914 - :random-mult #x3f800000 + :initial-valuef -0.10666667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1109756914 - :random-mult #x3f800000 + :initial-valuef -0.10666667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1073540497 - :random-range -1057993610 - :random-mult #x3f800000 + :initial-valuef -2.048 + :random-rangef -7.5093336 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f7ae148 - :random-mult #x3f800000 + :initial-valuef 0.98 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x5dc - :random-mult 1 + :initial-valuef (the-as float #x5dc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :random-range #x46000000 - :random-mult #x3f800000 + :random-rangef 8192.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -706,105 +710,108 @@ (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 #x1 + :initial-valuef (the-as float #x200f00) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :initial-value -968884224 - :random-mult #x3f800000 + :initial-valuef -12288.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x44cccccd - :random-range #x4499999a - :random-mult #x3f800000 + :initial-valuef 1638.4 + :random-rangef 1228.8 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47000000 - :random-mult #x3f800000 + :random-rangef 32768.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x1 - :initial-value #x48000000 - :random-range #x47200000 - :random-mult #x3f800000 + :initial-valuef 131072.0 + :random-rangef 40960.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43400000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 192.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42000000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x1 - :initial-value #x465a740e - :random-mult #x3f800000 + :initial-valuef 13981.014 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x21 :flags #x1 - :initial-value -1109756914 - :random-mult #x3f800000 + :initial-valuef -0.10666667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x22 :flags #x1 - :initial-value -1105394838 - :random-mult #x3f800000 + :initial-valuef -0.15333334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x23 :flags #x1 - :initial-value -1109756914 - :random-mult #x3f800000 + :initial-valuef -0.10666667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1068708659 - :random-mult #x3f800000 + :initial-valuef -3.2 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value 30 - :random-mult 1 + :initial-valuef (the-as float #x1e) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x400c - :random-mult 1 + :initial-valuef (the-as float #x400c) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -817,139 +824,138 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 23 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x201700) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x201700) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :random-range -964689920 - :random-mult #x3f800000 + :random-rangef -16384.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x45000000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x1 - :initial-value #x45000000 - :random-range #x45800000 - :random-mult #x3f800000 + :initial-valuef 2048.0 + :random-rangef 4096.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43000000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43400000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 192.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :random-range #x42800000 - :random-mult #x3f800000 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x42800000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x43da740e - :random-range #x445a740e - :random-mult #x3f800000 - ) - (new 'static 'sp-field-init-spec - :field #x1c - :flags #x1 - :random-mult #x3f800000 + :initial-valuef 436.90668 + :random-rangef 873.81335 + :random-multf 1.0 ) + (new 'static 'sp-field-init-spec :field #x1c :flags #x1 :random-multf 1.0) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1017482226 - :random-range #x43da740e - :random-mult #x3f800000 + :initial-valuef -218.45334 + :random-rangef 436.90668 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1112620226 - :random-mult #x3f800000 + :initial-valuef -0.08533333 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1067813874 - :random-range -1056047454 - :random-mult #x3f800000 + :initial-valuef -3.4133334 + :random-rangef -8.874666 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f733333 - :random-mult #x3f800000 + :initial-valuef 0.95 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x5dc - :random-mult 1 + :initial-valuef (the-as float #x5dc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :initial-value #x462aaaab - :random-range #x45638e39 - :random-mult #x3f800000 + :initial-valuef 10922.667 + :random-rangef 3640.889 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :random-range #x46a00000 - :random-mult #x3f800000 + :random-rangef 20480.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -962,157 +968,160 @@ (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 26 - (new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000) + (new 'static 'sp-field-init-spec + :field #x1 + :initial-valuef (the-as float #x200000) + ) (new 'static 'sp-field-init-spec :field #x6 :flags #x1 - :initial-value #x42000000 - :random-range #x42000000 - :random-mult #x3f800000 + :initial-valuef 32.0 + :random-rangef 32.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xb :flags #x1 - :random-range -964689920 - :random-mult #x3f800000 + :random-rangef -16384.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #xd :flags #x1 - :initial-value #x47000000 - :random-range #x47000000 - :random-mult #x3f800000 + :initial-valuef 32768.0 + :random-rangef 32768.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x10 :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x11 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x12 :flags #x1 - :initial-value #x43400000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 192.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x13 :flags #x1 - :initial-value #x43000000 - :random-range #x42800000 - :random-mult #x3f800000 + :initial-valuef 128.0 + :random-rangef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x14 :flags #x1 - :initial-value #x42800000 - :random-mult #x3f800000 + :initial-valuef 64.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x15 :flags #x1 - :initial-value #x41800000 - :random-range #x42400000 - :random-mult #x3f800000 + :initial-valuef 16.0 + :random-rangef 48.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1a :flags #x1 - :initial-value #x43da740e - :random-range #x44a3d70a - :random-mult #x3f800000 + :initial-valuef 436.90668 + :random-rangef 1310.72 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1c :flags #x1 - :initial-value #x43088889 - :random-range #x42a3d70a - :random-mult #x3f800000 + :initial-valuef 136.53334 + :random-rangef 81.92 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x1f :flags #x1 - :initial-value -1039031628 - :random-range #x4291a2b4 - :random-mult #x3f800000 + :initial-valuef -36.40889 + :random-rangef 72.81778 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x20 :flags #x3 - :initial-value -4 - :random-mult 1 + :initial-valuef (the-as float #xfffffffc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x21 :flags #x1 - :initial-value -1109756914 - :random-mult #x3f800000 + :initial-valuef -0.10666667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x22 :flags #x1 - :initial-value -1105394838 - :random-mult #x3f800000 + :initial-valuef -0.15333334 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x23 :flags #x1 - :initial-value -1109756914 - :random-mult #x3f800000 + :initial-valuef -0.10666667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x24 :flags #x1 - :initial-value -1109756914 - :random-mult #x3f800000 + :initial-valuef -0.10666667 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x26 :flags #x1 - :initial-value -1073540497 - :random-range -1057993610 - :random-mult #x3f800000 + :initial-valuef -2.048 + :random-rangef -7.5093336 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2d :flags #x1 - :initial-value #x3f59999a - :random-mult #x3f800000 + :initial-valuef 0.85 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x2e - :initial-value #x5dc - :random-mult 1 + :initial-valuef (the-as float #x5dc) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x2f - :initial-value #x5004 - :random-mult 1 + :initial-valuef (the-as float #x5004) + :random-multf (the-as float #x1) ) (new 'static 'sp-field-init-spec :field #x3a :flags #x1 - :random-range #x468e38e4 - :random-mult #x3f800000 + :random-rangef 18204.445 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3b :flags #x1 - :random-range #x47800000 - :random-mult #x3f800000 + :random-rangef 65536.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x3e :flags #x1 - :random-range #x46000000 - :random-mult #x3f800000 + :random-rangef 8192.0 + :random-multf 1.0 ) (new 'static 'sp-field-init-spec :field #x43) ) @@ -1424,9 +1433,9 @@ (level-hint-spawn (game-text-id beach-seagulls-avalanche) "sksp0025" - #f + (the-as entity #f) *entity-pool* - 0 + (game-task none) ) (let ((v1-2 (-> self skel root-channel 0))) (set! @@ -1551,4 +1560,8 @@ (dummy-14 obj *lrocklrg-sg* '()) ((method-of-type beach-rock copy-defaults!) obj arg0) (none) - ) \ No newline at end of file + ) + + + + diff --git a/goal_src/levels/beach/lurkerpuppy.gc b/goal_src/levels/beach/lurkerpuppy.gc index c45335d187..e716635728 100644 --- a/goal_src/levels/beach/lurkerpuppy.gc +++ b/goal_src/levels/beach/lurkerpuppy.gc @@ -601,7 +601,7 @@ nav-enemy-default-event-handler ;; definition for method 47 of type lurkerpuppy ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-47 lurkerpuppy ((obj lurkerpuppy)) +(defmethod initialize-collision lurkerpuppy ((obj lurkerpuppy)) (let ((s5-0 (new diff --git a/goal_src/levels/common/baseplat.gc b/goal_src/levels/common/baseplat.gc index 38edcb10de..dc525df9cf 100644 --- a/goal_src/levels/common/baseplat.gc +++ b/goal_src/levels/common/baseplat.gc @@ -27,6 +27,17 @@ ) ) +;; definition for method 3 of type baseplat +(defmethod inspect baseplat ((obj baseplat)) + (let ((t9-0 (method-of-type process-drawable inspect))) + (t9-0 obj) + ) + (format #t "~T~Tsmush: #~%" (-> obj smush)) + (format #t "~T~Tbasetrans: #~%" (-> obj basetrans)) + (format #t "~T~Tbouncing: ~A~%" (-> obj bouncing)) + obj + ) + ;; definition for method 21 of type baseplat ;; INFO: Return type mismatch int vs none. ;; Used lq/sq @@ -275,9 +286,9 @@ eco-door-event-handler (level-hint-spawn (game-text-id zero) (the-as string #f) - (the-as symbol (-> self entity)) + (-> self entity) *entity-pool* - 0 + (game-task none) ) ) (suspend) @@ -566,3 +577,7 @@ eco-door-event-handler ) (none) ) + + + + diff --git a/goal_src/levels/common/nav-enemy-h.gc b/goal_src/levels/common/nav-enemy-h.gc index 65d5f5067b..650c3eac88 100644 --- a/goal_src/levels/common/nav-enemy-h.gc +++ b/goal_src/levels/common/nav-enemy-h.gc @@ -116,7 +116,7 @@ (nav-enemy-jump-to-point () _type_ :state 36) (TODO-RENAME-37 (_type_) none 37) (TODO-RENAME-38 (_type_) none 38) - (TODO-RENAME-39 (_type_) none 39) + (common-post (_type_) none 39) (dummy-40 (_type_) none 40) (dummy-41 (_type_) none 41) (TODO-RENAME-42 (_type_) int 42) @@ -124,7 +124,7 @@ (dummy-44 (_type_ process event-message-block) object 44) (TODO-RENAME-45 (_type_ nav-enemy-info) none 45) (TODO-RENAME-46 (_type_ float) basic 46) - (TODO-RENAME-47 (_type_) none 47) ;; - Stubbed + (initialize-collision (_type_) none 47) (TODO-RENAME-48 (_type_) none 48) ;; - Stubbed (TODO-RENAME-49 (_type_ nav-enemy-info) float 49) (TODO-RENAME-50 (_type_ vector) symbol 50) diff --git a/goal_src/levels/common/nav-enemy.gc b/goal_src/levels/common/nav-enemy.gc index b057cc22f8..3fff00e757 100644 --- a/goal_src/levels/common/nav-enemy.gc +++ b/goal_src/levels/common/nav-enemy.gc @@ -40,7 +40,6 @@ ) ;; definition for method 9 of type trajectory -;; INFO: this function exists in multiple non-identical object files (defmethod eval-position! trajectory @@ -105,7 +104,7 @@ ;; definition for method 39 of type nav-enemy ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-39 nav-enemy ((obj nav-enemy)) +(defmethod common-post nav-enemy ((obj nav-enemy)) (when (and (logtest? (-> obj nav-enemy-flags) 256) @@ -359,7 +358,7 @@ nav-enemy-default-event-handler ;; definition for function nav-enemy-common-post (defbehavior nav-enemy-common-post nav-enemy () - (TODO-RENAME-39 self) + (common-post self) (none) ) @@ -3102,7 +3101,7 @@ nav-enemy-default-event-handler :settings (new 'static 'shadow-settings :center - (new 'static 'vector :w 0.000000000000000000000000000000000000000000056) + (new 'static 'vector :w (the-as float #x28)) :shadow-dir (new 'static 'vector :y -1.0 :w 614400.0) :bot-plane (new 'static 'plane :y 1.0 :w 4096.0) @@ -3208,7 +3207,7 @@ nav-enemy-default-event-handler (defbehavior nav-enemy-init-by-other nav-enemy ((arg0 nav-enemy) (arg1 vector) (arg2 vector)) - (TODO-RENAME-47 self) + (initialize-collision self) (logior! (-> self mask) (process-mask actor-pause)) (set! (-> self collide-info trans quad) (-> arg1 quad)) (set! (-> self event-param-point quad) (-> arg2 quad)) @@ -3228,7 +3227,7 @@ nav-enemy-default-event-handler ;; definition for method 47 of type nav-enemy ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-47 nav-enemy ((obj nav-enemy)) +(defmethod initialize-collision nav-enemy ((obj nav-enemy)) 0 (none) ) @@ -3251,7 +3250,7 @@ nav-enemy-default-event-handler ;; definition for method 11 of type nav-enemy ;; INFO: Return type mismatch int vs none. (defmethod copy-defaults! nav-enemy ((obj nav-enemy) (arg0 res-lump)) - (TODO-RENAME-47 obj) + (initialize-collision obj) (process-drawable-from-entity! obj arg0) (TODO-RENAME-48 obj) (TODO-RENAME-59 obj) @@ -3288,3 +3287,7 @@ nav-enemy-default-event-handler ) #f ) + + + + diff --git a/goal_src/levels/common/sharkey.gc b/goal_src/levels/common/sharkey.gc index 99399a00ad..69d5f01977 100644 --- a/goal_src/levels/common/sharkey.gc +++ b/goal_src/levels/common/sharkey.gc @@ -285,7 +285,7 @@ nav-enemy-default-event-handler ;; definition for method 39 of type sharkey ;; INFO: Return type mismatch int vs none. ;; Used lq/sq -(defmethod TODO-RENAME-39 sharkey ((obj sharkey)) +(defmethod common-post sharkey ((obj sharkey)) (let ((f30-0 (-> obj water height)) (s5-0 (new 'stack-no-clear 'vector)) ) diff --git a/goal_src/levels/firecanyon/assistant-firecanyon.gc b/goal_src/levels/firecanyon/assistant-firecanyon.gc index a86e7b9dff..8d61cf45a8 100644 --- a/goal_src/levels/firecanyon/assistant-firecanyon.gc +++ b/goal_src/levels/firecanyon/assistant-firecanyon.gc @@ -16,6 +16,14 @@ :flag-assert #x350110017c ) +;; definition for method 3 of type assistant-firecanyon +(defmethod inspect assistant-firecanyon ((obj assistant-firecanyon)) + (let ((t9-0 (method-of-type process-taskable inspect))) + (t9-0 obj) + ) + obj + ) + ;; failed to figure out what this is: (let ((v1-1 @@ -149,28 +157,30 @@ #f ) ) - (and - (not - (closed? - (-> self tasks) - (game-task firecanyon-assistant) - (task-status need-reward-speech) + (let ((a0-1 (-> self tasks))) + (and + (not + (closed? + a0-1 + (game-task firecanyon-assistant) + (task-status need-reward-speech) + ) ) - ) - (not (movie?)) - (not (level-hint-displayed?)) - (not - (and - *cheat-mode* - (logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3)) + (not (movie?)) + (not (level-hint-displayed? (the-as symbol a0-1))) + (not + (and + *cheat-mode* + (logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3)) + ) ) - ) - (< - (- - (-> *display* base-frame-counter) - (the-as int (-> self state-time)) + (< + (- + (-> *display* base-frame-counter) + (the-as int (-> self state-time)) + ) + 3000 ) - 3000 ) ) ) @@ -223,9 +233,9 @@ (level-hint-spawn (game-text-id firecanyon-not-enough-cells) "asstvb09" - #f + (the-as entity #f) *entity-pool* - 0 + (game-task none) ) ) (none) @@ -869,3 +879,7 @@ (dummy-42 obj) (none) ) + + + + diff --git a/goal_src/levels/jungle/hopper.gc b/goal_src/levels/jungle/hopper.gc index ab69f555de..60a6844632 100644 --- a/goal_src/levels/jungle/hopper.gc +++ b/goal_src/levels/jungle/hopper.gc @@ -18,6 +18,16 @@ :flag-assert #x4c01300198 ) +;; definition for method 3 of type hopper +(defmethod inspect hopper ((obj hopper)) + (let ((t9-0 (method-of-type nav-enemy inspect))) + (t9-0 obj) + ) + (format #t "~T~Tjump-length: ~f~%" (-> obj jump-length)) + (format #t "~T~Tshadow-min-y: ~f~%" (-> obj shadow-min-y)) + obj + ) + ;; failed to figure out what this is: (let ((v1-1 @@ -47,7 +57,7 @@ nav-enemy-default-event-handler ;; definition for method 39 of type hopper ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-39 hopper ((obj hopper)) +(defmethod common-post hopper ((obj hopper)) (let ((v1-1 (-> obj draw shadow-ctrl))) (set! (-> v1-1 settings bot-plane w) @@ -65,14 +75,14 @@ nav-enemy-default-event-handler ;; Used lq/sq (defbehavior hopper-find-ground hopper ((arg0 vector)) (let ((s5-0 (new 'stack-no-clear 'vector))) - (let ((t1-0 (new 'stack-no-clear 'bone)) + (let ((t1-0 (new 'stack-no-clear 'collide-tri-result)) (f30-0 61440.0) ) (set! (-> s5-0 quad) (-> arg0 quad)) (set! (-> s5-0 y) (+ 20480.0 (-> s5-0 y))) (let ((f0-2 - (dummy-12 + (fill-and-probe-using-y-probe *collide-cache* s5-0 f30-0 @@ -682,7 +692,7 @@ nav-enemy-default-event-handler ;; definition for method 47 of type hopper ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-47 hopper ((obj hopper)) +(defmethod initialize-collision hopper ((obj hopper)) (let ((s5-0 (new @@ -741,3 +751,6 @@ nav-enemy-default-event-handler (none) ) + + + diff --git a/goal_src/levels/jungle/junglefish.gc b/goal_src/levels/jungle/junglefish.gc index dc3b28d2c5..978e2ff2ba 100644 --- a/goal_src/levels/jungle/junglefish.gc +++ b/goal_src/levels/jungle/junglefish.gc @@ -44,7 +44,7 @@ nav-enemy-default-event-handler ;; definition for method 39 of type junglefish ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-39 junglefish ((obj junglefish)) +(defmethod common-post junglefish ((obj junglefish)) (dummy-10 (-> obj water)) ((the-as (function nav-enemy none) (find-parent-method junglefish 39)) obj) 0 diff --git a/goal_src/levels/jungleb/aphid.gc b/goal_src/levels/jungleb/aphid.gc index acf3782daf..2d4ff65a9e 100644 --- a/goal_src/levels/jungleb/aphid.gc +++ b/goal_src/levels/jungleb/aphid.gc @@ -608,7 +608,7 @@ ;; definition for method 47 of type aphid ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-47 aphid ((obj aphid)) +(defmethod initialize-collision aphid ((obj aphid)) (let ((s5-0 (new @@ -656,7 +656,7 @@ (defbehavior aphid-init-by-other aphid ((arg0 nav-enemy) (arg1 vector) (arg2 vector)) - (TODO-RENAME-47 self) + (initialize-collision self) (logior! (-> self mask) (process-mask actor-pause)) (set! (-> self collide-info trans quad) (-> arg1 quad)) (set! (-> self event-param-point quad) (-> arg2 quad)) diff --git a/goal_src/levels/misty/misty-teetertotter.gc b/goal_src/levels/misty/misty-teetertotter.gc index dcad467c90..7b436613e9 100644 --- a/goal_src/levels/misty/misty-teetertotter.gc +++ b/goal_src/levels/misty/misty-teetertotter.gc @@ -17,12 +17,20 @@ :flag-assert #x14005000bc ) - -(define-extern *teetertotter-sg* skeleton-group) (define-extern teetertotter-idle (state teetertotter)) (define-extern teetertotter-launch (state teetertotter)) (define-extern teetertotter-bend (state teetertotter)) +;; definition for method 3 of type teetertotter +(defmethod inspect teetertotter ((obj teetertotter)) + (let ((t9-0 (method-of-type process-drawable inspect))) + (t9-0 obj) + ) + (format #t "~T~Tlaunched-player: ~A~%" (-> obj launched-player)) + (format #t "~T~Tin-launch-window: ~A~%" (-> obj in-launch-window)) + (format #t "~T~Trock-is-dangerous: ~A~%" (-> obj rock-is-dangerous)) + obj + ) ;; failed to figure out what this is: (let @@ -43,7 +51,7 @@ (set! (-> v1-1 lod-dist 1) 163840.0) (set! (-> v1-1 mgeo 2) (the-as uint 3)) (set! (-> v1-1 lod-dist 2) 4095996000.0) - (set! *teetertotter-sg* v1-1) + (define *teetertotter-sg* v1-1) ) ;; definition for function target-on-end-of-teetertotter? @@ -95,9 +103,9 @@ (level-hint-spawn (game-text-id misty-teetertotter-bonk-dax-tutorial) "sksp0070" - #f + (the-as entity #f) *entity-pool* - 0 + (game-task none) ) (go teetertotter-bend) ) @@ -129,59 +137,60 @@ (defstate teetertotter-launch (teetertotter) :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (when (= arg2 'touch) - (when - (and - ((method-of-type touching-shapes-entry prims-touching?) - (the-as touching-shapes-entry (-> arg3 param 0)) - (the-as collide-shape-moving (-> self root)) - (the-as uint 1) - ) - (-> self rock-is-dangerous) - ) - (let ((a1-2 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-2 from) self) - (set! (-> a1-2 num-params) 2) - (set! (-> a1-2 message) 'attack) - (set! (-> a1-2 param 0) (-> arg3 param 0)) - (let ((a0-2 (new 'static 'attack-info :mask #x20))) - (set! (-> a0-2 mode) 'deadly) - (set! (-> a1-2 param 1) (the-as uint a0-2)) - ) - (send-event-function arg0 a1-2) - ) - ) - (when - (and - ((method-of-type touching-shapes-entry prims-touching?) - (the-as touching-shapes-entry (-> arg3 param 0)) - (the-as collide-shape-moving (-> self root)) - (the-as uint 2) - ) - (target-on-end-of-teetertotter? self) - (not (-> self launched-player)) - (-> self in-launch-window) - ) - (let ((a1-4 (new 'stack-no-clear 'event-message-block))) - (set! (-> a1-4 from) self) - (set! (-> a1-4 num-params) 2) - (set! (-> a1-4 message) 'shove) - (set! (-> a1-4 param 0) (the-as uint #f)) - (let ((v1-16 (new 'static 'attack-info :mask #xcc0))) - (set! (-> v1-16 shove-back) 0.0) - (set! (-> v1-16 shove-up) 53248.0) - (set! (-> v1-16 angle) 'jump) - (set! (-> v1-16 control) 1.0) - (set! (-> a1-4 param 1) (the-as uint v1-16)) - ) - (when (send-event-function arg0 a1-4) - (let ((v0-0 #t)) - (set! (-> self launched-player) v0-0) - v0-0 - ) - ) - ) - ) + (the-as object (when (= arg2 'touch) + (when + (and + ((method-of-type touching-shapes-entry prims-touching?) + (the-as touching-shapes-entry (-> arg3 param 0)) + (the-as collide-shape-moving (-> self root)) + (the-as uint 1) + ) + (-> self rock-is-dangerous) + ) + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) self) + (set! (-> a1-2 num-params) 2) + (set! (-> a1-2 message) 'attack) + (set! (-> a1-2 param 0) (-> arg3 param 0)) + (let ((a0-2 (new 'static 'attack-info :mask #x20))) + (set! (-> a0-2 mode) 'deadly) + (set! (-> a1-2 param 1) (the-as uint a0-2)) + ) + (send-event-function arg0 a1-2) + ) + ) + (when + (and + ((method-of-type touching-shapes-entry prims-touching?) + (the-as touching-shapes-entry (-> arg3 param 0)) + (the-as collide-shape-moving (-> self root)) + (the-as uint 2) + ) + (target-on-end-of-teetertotter? self) + (not (-> self launched-player)) + (-> self in-launch-window) + ) + (let ((a1-4 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-4 from) self) + (set! (-> a1-4 num-params) 2) + (set! (-> a1-4 message) 'shove) + (set! (-> a1-4 param 0) (the-as uint #f)) + (let ((v1-16 (new 'static 'attack-info :mask #xcc0))) + (set! (-> v1-16 shove-back) 0.0) + (set! (-> v1-16 shove-up) 53248.0) + (set! (-> v1-16 angle) 'jump) + (set! (-> v1-16 control) 1.0) + (set! (-> a1-4 param 1) (the-as uint v1-16)) + ) + (when (send-event-function arg0 a1-4) + (let ((v0-0 #t)) + (set! (-> self launched-player) v0-0) + v0-0 + ) + ) + ) + ) + ) ) ) :code @@ -412,3 +421,7 @@ (go teetertotter-idle) (none) ) + + + + diff --git a/goal_src/levels/ogre/flying-lurker.gc b/goal_src/levels/ogre/flying-lurker.gc index c88f03cd01..3ff89ad32a 100644 --- a/goal_src/levels/ogre/flying-lurker.gc +++ b/goal_src/levels/ogre/flying-lurker.gc @@ -5,3 +5,2067 @@ ;; name in dgo: flying-lurker ;; dgos: L1, OGR + +;; failed to figure out what this is: +(let + ((v1-0 + (new 'static 'skeleton-group + :art-group-name "ogrecam" + :bounds + (new 'static 'vector :y 8192.0 :w 24576.0) + :version #x6 + ) + ) + ) + (set! (-> v1-0 jgeo) 0) + (set! (-> v1-0 janim) -1) + (set! (-> v1-0 mgeo 0) (the-as uint 1)) + (set! (-> v1-0 lod-dist 0) 4095996000.0) + (define *ogrecam-sg* v1-0) + ) + +;; definition of type plunger-lurker +(deftype plunger-lurker (process-drawable) + ((alt-actor entity-actor :offset-assert 176) + (got-hit symbol :offset-assert 180) + ) + :heap-base #x50 + :method-count-assert 20 + :size-assert #xb8 + :flag-assert #x14005000b8 + ) + +;; definition for method 3 of type plunger-lurker +(defmethod inspect plunger-lurker ((obj plunger-lurker)) + (let ((t9-0 (method-of-type process-drawable inspect))) + (t9-0 obj) + ) + (format #t "~T~Talt-actor: ~A~%" (-> obj alt-actor)) + (format #t "~T~Tgot-hit: ~A~%" (-> obj got-hit)) + obj + ) + +;; failed to figure out what this is: +(let + ((v1-2 + (new 'static 'skeleton-group + :art-group-name "plunger-lurker" + :bounds + (new 'static 'vector :x 8192.0 :y 16384.0 :w 49152.0) + :max-lod 2 + :version #x6 + ) + ) + ) + (set! (-> v1-2 jgeo) 0) + (set! (-> v1-2 janim) 4) + (set! (-> v1-2 mgeo 0) (the-as uint 1)) + (set! (-> v1-2 lod-dist 0) 81920.0) + (set! (-> v1-2 mgeo 1) (the-as uint 2)) + (set! (-> v1-2 lod-dist 1) 163840.0) + (set! (-> v1-2 mgeo 2) (the-as uint 3)) + (set! (-> v1-2 lod-dist 2) 4095996000.0) + (define *plunger-lurker-sg* v1-2) + ) + +;; failed to figure out what this is: +(defstate plunger-lurker-plunge (plunger-lurker) + :code + (behavior () + (set-setting! *setting-control* self 'allow-progress #f 0.0 0) + (logclear! (-> self mask) (process-mask actor-pause)) + (process-entity-status! self (entity-perm-status bit-3) #t) + (while (or (not *target*) (logtest? (-> *target* state-flags) #x8008)) + (suspend) + ) + (while (not (process-grab? *target*)) + (suspend) + ) + (let* ((gp-0 (get-process *default-dead-pool* manipy #x4000)) + (gp-1 (ppointer->handle (when gp-0 + (let + ((t9-4 (method-of-type manipy activate))) + (t9-4 + (the-as manipy gp-0) + self + 'manipy + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + gp-0 + manipy-init + (-> self entity extra trans) + (-> self entity) + *ogrecam-sg* + #f + ) + (-> gp-0 ppointer) + ) + ) + ) + ) + (let + ((s5-0 (the-as othercam (get-process *default-dead-pool* othercam #x4000))) + ) + (ppointer->handle (when s5-0 + (let ((t9-7 (method-of-type othercam activate))) + (t9-7 + s5-0 + (-> gp-1 process 0) + 'othercam + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s5-0 + othercam-init-by-other + (-> gp-1 process 0) + 4 + #f + #t + ) + (-> s5-0 ppointer) + ) + ) + ) + (let ((a1-8 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-8 from) self) + (set! (-> a1-8 num-params) 1) + (set! (-> a1-8 message) 'eval) + (set! + (-> a1-8 param 0) + (the-as + uint + (lambda :behavior manipy + () + (let ((v0-0 (logior (-> self draw status) 32))) + (set! (-> self draw status) v0-0) + v0-0 + ) + ) + ) + ) + (send-event-function (handle->process gp-1) a1-8) + ) + (let ((a1-9 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-9 from) self) + (set! (-> a1-9 num-params) 1) + (set! (-> a1-9 message) 'clone-and-kill-links) + (set! (-> a1-9 param 0) (the-as uint (process->handle self))) + (let ((t9-10 send-event-function) + (v1-34 (-> self alt-actor)) + ) + (t9-10 (if v1-34 + (-> v1-34 extra process) + ) + a1-9 + ) + ) + ) + (let ((a1-10 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-10 from) self) + (set! (-> a1-10 num-params) 1) + (set! (-> a1-10 message) 'clone-copy-trans) + (set! (-> a1-10 param 0) (the-as uint #f)) + (send-event-function (-> gp-1 process 0) a1-10) + ) + (let ((a1-11 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-11 from) self) + (set! (-> a1-11 num-params) 1) + (set! (-> a1-11 message) 'anim-mode) + (set! (-> a1-11 param 0) (the-as uint 'clone-anim)) + (send-event-function (-> gp-1 process 0) a1-11) + ) + (ja-play-spooled-anim + (new 'static 'spool-anim + :name "plunger-lurker-blowup" + :index 7 + :parts 4 + :command-list + '( + ((the binteger 200) + alive + "tntbarrel-223" + ) + ((the binteger 200) + alive + "tntbarrel-222" + ) + ((the binteger 200) + alive + "tntbarrel-221" + ) + ((the binteger 200) + alive + "tntbarrel-220" + ) + ((the binteger 200) + alive + "tntbarrel-224" + ) + ((the binteger 200) + alive + "tntbarrel-219" + ) + ((the binteger 200) + alive + "tntbarrel-246" + ) + ((the binteger 200) + alive + "tntbarrel-249" + ) + ((the binteger 200) + alive + "tntbarrel-250" + ) + ((the binteger 200) + alive + "tntbarrel-251" + ) + ((the binteger 200) + alive + "tntbarrel-225" + ) + ((the binteger 201) + joint + "cameraB" + ) + ((the binteger 220) + send-event + "tntbarrel-223" + 'die-big + ) + ((the binteger 230) + send-event + "tntbarrel-222" + 'die-big + ) + ((the binteger 240) + send-event + "tntbarrel-221" + 'die-big + ) + ((the binteger 240) + send-event + "tntbarrel-220" + 'die-big + ) + ((the binteger 245) + send-event + "tntbarrel-224" + 'die-big + ) + ((the binteger 250) + send-event + "tntbarrel-219" + 'die-big + ) + ((the binteger 251) + joint + "cameraA" + ) + ((the binteger 260) + send-event + "tntbarrel-246" + 'die-big + ) + ((the binteger 325) + send-event + "tntbarrel-249" + 'die-big + ) + ((the binteger 380) + send-event + "tntbarrel-250" + 'die-big + ) + ((the binteger 410) + send-event + "tntbarrel-251" + 'die-big + ) + ((the binteger 420) + blackout + (the binteger 30) + ) + ((the binteger 421) + joint + "cameraB" + ) + ((the binteger 430) send-event "tntbarrel-225" 'die-big) + ) + ) + (the-as art-joint-anim #f) + (the-as art-joint-anim (-> self draw art-group data 4)) + (the-as (function process-drawable symbol) false-func) + ) + (if (handle->process gp-1) + (deactivate (-> gp-1 process 0)) + ) + ) + (let ((a1-14 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-14 from) self) + (set! (-> a1-14 num-params) 0) + (set! (-> a1-14 message) 'reset) + (let ((t9-15 send-event-function) + (v1-56 (-> self alt-actor)) + ) + (t9-15 (if v1-56 + (-> v1-56 extra process) + ) + a1-14 + ) + ) + ) + (process-release? *target*) + (suspend) + 0 + (let ((a1-15 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-15 from) self) + (set! (-> a1-15 num-params) 2) + (set! (-> a1-15 message) 'attack-invinc) + (set! (-> a1-15 param 0) (the-as uint #f)) + (let + ((a0-37 + (new 'static 'array uint32 26 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x20 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + ) + (set! (-> a0-37 17) (the-as uint 'instant-death)) + (set! (-> a1-15 param 1) (the-as uint a0-37)) + ) + (send-event-function *target* a1-15) + ) + (dummy-18 self) + (deactivate self) + (while #t + (suspend) + ) + (none) + ) + :post + (the-as (function none :behavior plunger-lurker) ja-post) + ) + +;; failed to figure out what this is: +(defstate plunger-lurker-flee (plunger-lurker) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (when (= v1-0 'attack) + (let ((v0-0 #t)) + (set! (-> self got-hit) v0-0) + v0-0 + ) + ) + ) + ) + ) + :trans + (behavior () + (when (-> self got-hit) + (close-specific-task! + (game-task plunger-lurker-hit) + (task-status need-hint) + ) + (process-entity-status! self (entity-perm-status complete) #t) + (level-hint-spawn + (game-text-id sidekick-speech-hint-ogre-race) + "sksp0321" + (the-as entity #f) + *entity-pool* + (game-task none) + ) + (let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-0 + (let ((t9-4 (method-of-type part-tracker activate))) + (t9-4 + (the-as part-tracker gp-0) + *entity-pool* + 'part-tracker + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + gp-0 + part-tracker-init + (-> *part-group-id-table* 474) + -1 + #f + #f + #f + (-> self root trans) + ) + (-> gp-0 ppointer) + ) + ) + (dummy-18 self) + (deactivate self) + ) + (none) + ) + :code + (behavior () + (let ((a0-0 (-> self skel root-channel 0))) + (set! + (-> a0-0 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + (set! + (-> a0-0 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 5)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-0 param 1) 1.0) + (set! (-> a0-0 frame-num) 0.0) + (joint-control-channel-group! + a0-0 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-1 (-> self skel root-channel 0))) + (set! + (-> a0-1 param 0) + (the float (+ (-> a0-1 frame-group data 0 length) -1)) + ) + (set! (-> a0-1 param 1) 1.0) + (joint-control-channel-group-eval! + a0-1 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((a0-3 (-> self skel root-channel 0))) + (set! + (-> a0-3 frame-group) + (the-as art-joint-anim (-> self draw art-group data 6)) + ) + (set! + (-> a0-3 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 6)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-3 param 1) 1.0) + (set! (-> a0-3 frame-num) 0.0) + (joint-control-channel-group! + a0-3 + (the-as art-joint-anim (-> self draw art-group data 6)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-4 (-> self skel root-channel 0))) + (set! + (-> a0-4 param 0) + (the float (+ (-> a0-4 frame-group data 0 length) -1)) + ) + (set! (-> a0-4 param 1) 1.0) + (joint-control-channel-group-eval! + a0-4 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (while #t + (suspend) + ) + (none) + ) + :post + (the-as (function none :behavior plunger-lurker) ja-post) + ) + +;; failed to figure out what this is: +(defstate plunger-lurker-idle (plunger-lurker) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (when (= v1-0 'plunge) + (logclear! (-> self mask) (process-mask actor-pause)) + (go plunger-lurker-plunge) + ) + ) + ) + ) + :trans + (behavior () + (spool-push *art-control* "plunger-lurker-blowup" 0 self -99.0) + (when + (and + *target* + (< + (vector-vector-distance-squared (-> self root trans) (target-pos 0)) + 6710886400.0 + ) + ) + (logclear! (-> self mask) (process-mask actor-pause)) + (go plunger-lurker-flee) + ) + (none) + ) + :code + (behavior () + (while #t + (let ((a0-0 (-> self skel root-channel 0))) + (set! + (-> a0-0 frame-group) + (the-as art-joint-anim (-> self draw art-group data 4)) + ) + (set! + (-> a0-0 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 4)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-0 param 1) 1.0) + (set! (-> a0-0 frame-num) 0.0) + (joint-control-channel-group! + a0-0 + (the-as art-joint-anim (-> self draw art-group data 4)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-1 (-> self skel root-channel 0))) + (set! + (-> a0-1 param 0) + (the float (+ (-> a0-1 frame-group data 0 length) -1)) + ) + (set! (-> a0-1 param 1) 1.0) + (joint-control-channel-group-eval! + a0-1 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (none) + ) + :post + (the-as (function none :behavior plunger-lurker) ja-post) + ) + +;; failed to figure out what this is: +(defstate plunger-lurker-die (plunger-lurker) + :code + (behavior () + (dummy-18 self) + (deactivate self) + (suspend) + 0 + (none) + ) + ) + +;; definition for method 11 of type plunger-lurker +(defmethod copy-defaults! plunger-lurker ((obj plunger-lurker) (arg0 res-lump)) + (stack-size-set! (-> obj main-thread) 512) + (let + ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) + (let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 512)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 0) + (set-vector! (-> s3-0 local-sphere) 0.0 20480.0 -16384.0 40960.0) + ) + (dummy-46 s4-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (dummy-50 s4-0) + (set! (-> obj root) s4-0) + ) + (process-drawable-from-entity! obj arg0) + (dummy-14 obj *plunger-lurker-sg* '()) + (set! (-> obj alt-actor) (entity-actor-lookup arg0 'alt-actor 0)) + (set! (-> obj got-hit) #f) + (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) -16384.0) + (if (= (get-task-status (game-task plunger-lurker-hit)) (task-status invalid)) + (go plunger-lurker-die) + (go plunger-lurker-idle) + ) + (none) + ) + +;; definition of type flying-lurker +(deftype flying-lurker (process-drawable) + ((curve-position float :offset-assert 176) + (speed float :offset-assert 180) + (tangent vector :inline :offset-assert 192) + (anim-blend float :offset-assert 208) + (y-offset float :offset-assert 212) + (y-offset-desired float :offset-assert 216) + (y-vel float :offset-assert 220) + (last-look-time int64 :offset-assert 224) + (time-to-next-look int64 :offset-assert 232) + (take-off symbol :offset-assert 240) + (race-seconds float :offset-assert 244) + (race-start-time int64 :offset-assert 248) + (rank int32 :offset-assert 256) + (alt-actor entity-actor :offset-assert 260) + (alt-trans vector :offset-assert 264) + (shadow-backup shadow-geo :offset-assert 268) + (try-count uint8 :offset-assert 272) + (try-counted symbol :offset-assert 276) + (default-bounds vector :inline :offset-assert 288) + ) + :heap-base #xc0 + :method-count-assert 21 + :size-assert #x130 + :flag-assert #x1500c00130 + (:methods + (dummy-20 (_type_) none 20) + ) + ) + +;; definition for method 3 of type flying-lurker +(defmethod inspect flying-lurker ((obj flying-lurker)) + (let ((t9-0 (method-of-type process-drawable inspect))) + (t9-0 obj) + ) + (format #t "~T~Tcurve-position: ~f~%" (-> obj curve-position)) + (format #t "~T~Tspeed: ~f~%" (-> obj speed)) + (format #t "~T~Ttangent: #~%" (-> obj tangent)) + (format #t "~T~Tanim-blend: ~f~%" (-> obj anim-blend)) + (format #t "~T~Ty-offset: ~f~%" (-> obj y-offset)) + (format #t "~T~Ty-offset-desired: ~f~%" (-> obj y-offset-desired)) + (format #t "~T~Ty-vel: ~f~%" (-> obj y-vel)) + (format #t "~T~Tlast-look-time: ~D~%" (-> obj last-look-time)) + (format #t "~T~Ttime-to-next-look: ~D~%" (-> obj time-to-next-look)) + (format #t "~T~Ttake-off: ~A~%" (-> obj take-off)) + (format #t "~T~Trace-seconds: ~f~%" (-> obj race-seconds)) + (format #t "~T~Trace-start-time: ~D~%" (-> obj race-start-time)) + (format #t "~T~Trank: ~D~%" (-> obj rank)) + (format #t "~T~Talt-actor: ~A~%" (-> obj alt-actor)) + (format #t "~T~Talt-trans: #~%" (-> obj alt-trans)) + (format #t "~T~Tshadow-backup: ~A~%" (-> obj shadow-backup)) + (format #t "~T~Ttry-count: ~D~%" (-> obj try-count)) + (format #t "~T~Ttry-counted: ~A~%" (-> obj try-counted)) + (format #t "~T~Tdefault-bounds: #~%" (-> obj default-bounds)) + obj + ) + +;; failed to figure out what this is: +(let + ((v1-8 + (new 'static 'skeleton-group + :art-group-name "flying-lurker" + :bounds + (new 'static 'vector :y 8192.0 :w 24576.0) + :max-lod 2 + :longest-edge (meters 2.3) + :version #x6 + :shadow 4 + ) + ) + ) + (set! (-> v1-8 jgeo) 0) + (set! (-> v1-8 janim) 5) + (set! (-> v1-8 mgeo 0) (the-as uint 1)) + (set! (-> v1-8 lod-dist 0) 81920.0) + (set! (-> v1-8 mgeo 1) (the-as uint 2)) + (set! (-> v1-8 lod-dist 1) 163840.0) + (set! (-> v1-8 mgeo 2) (the-as uint 3)) + (set! (-> v1-8 lod-dist 2) 4095996000.0) + (define *flying-lurker-sg* v1-8) + ) + +;; definition for method 20 of type flying-lurker +;; INFO: Return type mismatch int vs none. +;; Used lq/sq +(defmethod dummy-20 flying-lurker ((obj flying-lurker)) + (with-pp + (let ((s5-0 (-> obj draw shadow-ctrl)) + (s4-0 #f) + ) + (when (-> obj draw shadow) + (when + (or + (logtest? (-> obj draw status) 8) + (< + (vector-vector-xz-distance-squared (-> obj root trans) (camera-pos)) + 10485760000.0 + ) + ) + (let ((s3-1 (new 'stack-no-clear 'collide-mesh-cache-tri)) + (a1-1 (new 'stack-no-clear 'vector)) + (a2-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-1 quad) (-> obj root trans quad)) + (set! (-> a1-1 y) (+ -8192.0 (-> a1-1 y))) + (set-vector! a2-0 0.0 -81920.0 0.0 1.0) + (when (>= (dummy-10 *collide-cache* a1-1 a2-0 8192.0 1 pp s3-1 1) 0.0) + (set! (-> s3-1 normal w) 8192.0) + (when + (and + (sphere-in-view-frustum? (-> s3-1 normal)) + (< + 822083600.0 + (vector-vector-distance-squared (-> s3-1 normal) (camera-pos)) + ) + ) + (set! s4-0 #t) + (let ((v1-17 s5-0)) + (set! + (-> v1-17 settings flags) + (logand -33 (-> v1-17 settings flags)) + ) + ) + 0 + (let ((v1-19 s5-0)) + (set! + (-> v1-19 settings bot-plane w) + (- (+ -8192.0 (-> s3-1 normal y))) + ) + ) + 0 + (let ((v1-21 s5-0)) + (set! + (-> v1-21 settings top-plane w) + (- (+ 6144.0 (-> s3-1 normal y))) + ) + ) + 0 + (let ((s2-2 (new 'stack-no-clear 'bounding-box))) + (let ((s1-1 (new 'stack-no-clear 'vector))) + (vector<-cspace! s1-1 (-> obj node-list data 4)) + (vector+float! (-> s2-2 min) s1-1 -18432.0) + (vector+float! (-> s2-2 max) s1-1 18432.0) + ) + (add-spheres! s2-2 (the-as (pointer sphere) (-> s3-1 normal)) 1) + (let + ((f0-17 (* 0.5 (vector-vector-distance (-> s2-2 min) (-> s2-2 max)))) + ) + (set-vector! + (-> obj draw bounds) + (* 0.5 (+ (-> s2-2 min x) (-> s2-2 max x))) + (* 0.5 (+ (-> s2-2 min y) (-> s2-2 max y))) + (* 0.5 (+ (-> s2-2 min z) (-> s2-2 max z))) + 1.0 + ) + (vector-! + (-> obj draw bounds) + (-> obj draw bounds) + (-> obj root trans) + ) + (set! (-> obj draw bounds w) f0-17) + ) + ) + (set! (-> obj draw origin-joint-index) (the-as uint 0)) + 0 + ) + ) + ) + ) + ) + (when (not s4-0) + (logior! (-> s5-0 settings flags) 32) + 0 + (set! (-> obj draw bounds quad) (-> obj default-bounds quad)) + (set! (-> obj draw origin-joint-index) (the-as uint 4)) + ) + ) + (none) + ) + ) + +;; definition for function flying-lurker-inc-try-count +;; INFO: Return type mismatch int vs none. +(defbehavior flying-lurker-inc-try-count flying-lurker () + (when (not (-> self try-counted)) + (set! (-> self try-counted) #t) + (let ((gp-0 (-> self entity extra perm))) + (logior! (-> gp-0 status) (entity-perm-status user-set-from-cstage)) + (set! (-> gp-0 user-int8 0) (seekl (-> gp-0 user-int8 0) 255 1)) + (set! (-> self try-count) (the-as uint (-> gp-0 user-int8 0))) + ) + ) + 0 + (none) + ) + +;; definition for function play-movie? +(defun play-movie? () + (= (get-task-status (game-task plunger-lurker-hit)) (task-status unknown)) + ) + +;; failed to figure out what this is: +(defstate flying-lurker-die (flying-lurker) + :code + (behavior () + (dummy-18 self) + (deactivate self) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate flying-lurker-sleep (flying-lurker) + :code + (behavior () + (process-entity-status! self (entity-perm-status bit-3) #f) + (logior! (-> self draw status) 2) + (while #t + (suspend) + ) + (none) + ) + ) + +;; definition for function first? +(defbehavior first? flying-lurker () + (not (-> self link prev)) + ) + +;; definition for function flying-lurker-calc-speed +;; INFO: Return type mismatch float vs none. +;; Used lq/sq +(defbehavior + flying-lurker-calc-speed flying-lurker + ((arg0 meters) (arg1 meters) (arg2 meters) (arg3 meters)) + (let + ((s4-1 + (vector-! + (new 'stack-no-clear 'vector) + (target-pos 0) + (-> self root trans) + ) + ) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s3-0 quad) (-> self tangent quad)) + 0.0 + (let ((f30-0 (vector-length s4-1))) + (set! (-> s4-1 y) 0.0) + (set! (-> s3-0 y) 0.0) + (let ((f28-0 (vector-dot s4-1 s3-0))) + (let + ((f26-0 + (* + (path-distance (-> self path)) + (/ + (the + float + (- (-> *display* game-frame-counter) (-> self race-start-time)) + ) + (-> self race-seconds) + ) + ) + ) + (f0-6 (* (path-distance (-> self path)) (-> self curve-position))) + ) + 0.0 + (let* ((f1-6 (* -81920.0 (the float (-> self rank)))) + (f0-10 (+ (if (< f26-0 f0-6) + (fmax (+ -81920.0 f1-6) (- f26-0 f0-6)) + (fmin (+ 245760.0 f1-6) (- f26-0 f0-6)) + ) + f28-0 + ) + ) + (f1-10 (* 0.000012207031 f0-10)) + (f0-12 (fmax -0.5 (fmin 0.5 f1-10))) + ) + (set! (-> self speed) (+ (* (+ 0.5 f0-12) (- arg2 arg3)) arg3)) + ) + ) + (set! + (-> self y-offset-desired) + (fmin 65536.0 (fmax 0.0 (* 1.6 (- 40960.0 (fmin (- f28-0) f30-0))))) + ) + ) + ) + ) + (none) + ) + +;; definition for function flying-lurker-move +;; INFO: Return type mismatch float vs none. +(defbehavior flying-lurker-move flying-lurker () + (+! + (-> self curve-position) + (/ + (the + float + (* + (- + (-> *display* base-frame-counter) + (-> *display* old-base-frame-counter) + ) + (the int (-> self speed)) + ) + ) + (path-distance (-> self path)) + ) + ) + (set! (-> self curve-position) (fmin 1.0 (fmax 0.0 (-> self curve-position)))) + (eval-path-curve! + (-> self path) + (-> self root trans) + (-> self curve-position) + 'interp + ) + (cond + ((< (-> self y-offset-desired) (-> self y-offset)) + (set! + (-> self y-vel) + (* 0.25 (- (-> self y-offset-desired) (-> self y-offset))) + ) + (set! (-> self y-vel) (fmax -436.90668 (-> self y-vel))) + (+! (-> self y-offset) (-> self y-vel)) + (when (>= (-> self y-offset-desired) (-> self y-offset)) + (set! (-> self y-offset) (-> self y-offset-desired)) + (set! (-> self y-vel) 0.0) + ) + ) + ((< (-> self y-offset) (-> self y-offset-desired)) + (set! + (-> self y-vel) + (* 0.5 (- (-> self y-offset-desired) (-> self y-offset))) + ) + (set! (-> self y-vel) (fmin 436.90668 (-> self y-vel))) + (+! (-> self y-offset) (-> self y-vel)) + (when (>= (-> self y-offset) (-> self y-offset-desired)) + (set! (-> self y-offset) (-> self y-offset-desired)) + (set! (-> self y-vel) 0.0) + ) + ) + ) + (+! (-> self root trans y) (-> self y-offset)) + (set! (-> self root trans y) (+ 12288.0 (-> self root trans y))) + (none) + ) + +;; definition for function flying-lurker-rotate +(defbehavior flying-lurker-rotate flying-lurker () + (let ((gp-0 (new 'stack-no-clear 'matrix))) + (let ((s5-0 (new 'stack-no-clear 'matrix))) + (let ((s3-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + ) + (TODO-RENAME-14 (-> self path) (-> self tangent) (-> self curve-position)) + (eval-path-curve! + (-> self path) + s3-0 + (+ (/ 12288.0 (path-distance (-> self path))) (-> self curve-position)) + 'interp + ) + (eval-path-curve! + (-> self path) + s4-0 + (+ (/ 4096.0 (path-distance (-> self path))) (-> self curve-position)) + 'interp + ) + (vector-! s3-0 s3-0 (-> self root trans)) + (vector-! s4-0 s4-0 (-> self root trans)) + (set! (-> s3-0 y) 0.0) + (set! (-> s4-0 y) 0.0) + (vector-normalize! s3-0 1.0) + (vector-normalize! s4-0 1.0) + (vector-cross! s4-0 s4-0 s3-0) + (set! (-> self anim-blend) (asin (-> s4-0 y))) + ) + (set! (-> self anim-blend) (* 0.0010986328 (-> self anim-blend))) + (set! (-> self anim-blend) (fmax -1.0 (fmin 1.0 (-> self anim-blend)))) + (set! (-> self anim-blend) (sin (* 16384.0 (-> self anim-blend)))) + (forward-down->inv-matrix + gp-0 + (-> self tangent) + (new 'static 'vector :y -1.0) + ) + (matrix-rotate-z! s5-0 (* -10922.667 (-> self anim-blend))) + (matrix*! gp-0 s5-0 gp-0) + ) + (matrix->quaternion (-> self root quat) gp-0) + ) + ) + +;; definition for function flying-lurker-calc-anim-speed +(defbehavior flying-lurker-calc-anim-speed flying-lurker () + (let* ((f0-1 (fabs (-> self speed))) + (f0-2 (* 0.07324219 f0-1)) + (f0-3 (+ -15.0 f0-2)) + (f1-3 (* 0.13333334 f0-3)) + ) + (fmin 1.5 (fmax 0.9 f1-3)) + ) + ) + +(define-extern flying-lurker-clone (state handle string flying-lurker)) +;; failed to figure out what this is: +(defstate flying-lurker-fly (flying-lurker) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'clone-and-kill-links) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 0) + (set! (-> a1-1 message) 'sleep) + (let ((t9-0 send-event-function) + (v1-3 (-> self link next)) + ) + (t9-0 (if v1-3 + (-> v1-3 extra process) + ) + a1-1 + ) + ) + ) + (go + flying-lurker-clone + (the-as handle (-> arg3 param 0)) + "" + ) + ) + ((= v1-0 'die) + (let ((v1-7 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-7 from) arg0) + (set! (-> v1-7 num-params) arg1) + (set! (-> v1-7 message) arg2) + (set! (-> v1-7 param 0) (-> arg3 param 0)) + (set! (-> v1-7 param 1) (-> arg3 param 1)) + (set! (-> v1-7 param 2) (-> arg3 param 2)) + (set! (-> v1-7 param 3) (-> arg3 param 3)) + (set! (-> v1-7 param 4) (-> arg3 param 4)) + (set! (-> v1-7 param 5) (-> arg3 param 5)) + (set! (-> v1-7 param 6) (-> arg3 param 6)) + (let ((t9-2 send-event-function) + (a1-3 (-> self link next)) + ) + (t9-2 (if a1-3 + (-> a1-3 extra process) + ) + v1-7 + ) + ) + ) + (dummy-18 self) + (deactivate self) + ) + ((= v1-0 'sleep) + (let ((v1-12 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-12 from) arg0) + (set! (-> v1-12 num-params) arg1) + (set! (-> v1-12 message) arg2) + (set! (-> v1-12 param 0) (-> arg3 param 0)) + (set! (-> v1-12 param 1) (-> arg3 param 1)) + (set! (-> v1-12 param 2) (-> arg3 param 2)) + (set! (-> v1-12 param 3) (-> arg3 param 3)) + (set! (-> v1-12 param 4) (-> arg3 param 4)) + (set! (-> v1-12 param 5) (-> arg3 param 5)) + (set! (-> v1-12 param 6) (-> arg3 param 6)) + (let ((t9-5 send-event-function) + (a1-5 (-> self link next)) + ) + (t9-5 (if a1-5 + (-> a1-5 extra process) + ) + v1-12 + ) + ) + ) + (go flying-lurker-sleep) + ) + ((= v1-0 'reset) + (let ((v1-15 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-15 from) arg0) + (set! (-> v1-15 num-params) arg1) + (set! (-> v1-15 message) arg2) + (set! (-> v1-15 param 0) (-> arg3 param 0)) + (set! (-> v1-15 param 1) (-> arg3 param 1)) + (set! (-> v1-15 param 2) (-> arg3 param 2)) + (set! (-> v1-15 param 3) (-> arg3 param 3)) + (set! (-> v1-15 param 4) (-> arg3 param 4)) + (set! (-> v1-15 param 5) (-> arg3 param 5)) + (set! (-> v1-15 param 6) (-> arg3 param 6)) + (let ((t9-7 send-event-function) + (a1-7 (-> self link next)) + ) + (t9-7 (if a1-7 + (-> a1-7 extra process) + ) + v1-15 + ) + ) + ) + (deactivate self) + ) + ) + ) + ) + ) + :enter + (behavior () + (process-entity-status! self (entity-perm-status bit-3) #t) + (set! (-> self draw status) (logand -3 (-> self draw status))) + (none) + ) + :trans + (behavior () + (dummy-20 self) + (when (not (movie?)) + (flying-lurker-calc-speed + (meters 15.0) + (meters 30.0) + (meters 0.11666667) + (meters 0.083333336) + ) + (flying-lurker-move) + (flying-lurker-rotate) + (when + (and + (-> self alt-actor) + (or + (< + (vector-vector-distance-squared + (-> self root trans) + (-> self alt-actor extra trans) + ) + 6710886400.0 + ) + (and + *target* + (< + 4194304000000.0 + (vector-vector-distance-squared (-> self root trans) (target-pos 0)) + ) + ) + ) + ) + (dummy-30 (-> self alt-actor) (entity-perm-status dead) #f) + (entity-birth-no-kill (-> self alt-actor)) + (let ((a1-4 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-4 from) self) + (set! (-> a1-4 num-params) 0) + (set! (-> a1-4 message) 'plunge) + (let ((t9-10 send-event-function) + (v1-13 (-> self alt-actor)) + ) + (t9-10 (if v1-13 + (-> v1-13 extra process) + ) + a1-4 + ) + ) + ) + ) + ) + (none) + ) + :code + (behavior () + (while #t + (when (not (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 5) + ) + ) + (ja-channel-push! 1 60) + (let ((v1-8 (-> self skel root-channel 0))) + (set! + (-> v1-8 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + ) + ) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 param 0) (flying-lurker-calc-anim-speed)) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + (suspend) + (when + (>= + (- (-> *display* base-frame-counter) (-> self last-look-time)) + (-> self time-to-next-look) + ) + (ja-channel-push! 1 60) + (let ((a0-12 (-> self skel root-channel 0))) + (set! + (-> a0-12 frame-group) + (the-as art-joint-anim (-> self draw art-group data 6)) + ) + (set! + (-> a0-12 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 6)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-12 param 1) 1.0) + (set! (-> a0-12 frame-num) 0.0) + (joint-control-channel-group! + a0-12 + (the-as art-joint-anim (-> self draw art-group data 6)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-13 (-> self skel root-channel 0))) + (set! + (-> a0-13 param 0) + (the float (+ (-> a0-13 frame-group data 0 length) -1)) + ) + (set! (-> a0-13 param 1) 1.0) + (joint-control-channel-group-eval! + a0-13 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (set! (-> self last-look-time) (-> *display* base-frame-counter)) + (let* ((f30-0 300.0) + (f28-0 3.0) + (f26-0 5.0) + (v1-41 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-42 (the-as float (logior #x3f800000 v1-41))) + ) + (set! + (-> self time-to-next-look) + (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 v1-42))))) + ) + ) + ) + ) + (none) + ) + :post + (the-as (function none :behavior flying-lurker) ja-post) + ) + +;; definition for function flying-lurker-handler +;; INFO: Return type mismatch none vs object. +(defbehavior + flying-lurker-handler flying-lurker + ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (when (= v1-0 'fly-away) + (when (-> self link next) + (entity-birth-no-kill (-> self link next)) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 2) + (set! (-> a1-1 message) 'fly-away) + (set! + (-> a1-1 param 0) + (the-as uint (/ (the-as int (-> arg3 param 0)) 16)) + ) + (set! (-> a1-1 param 1) (-> arg3 param 1)) + (let ((t9-1 send-event-function) + (v1-11 (-> self link next)) + ) + (t9-1 (if v1-11 + (-> v1-11 extra process) + ) + a1-1 + ) + ) + ) + ) + (let* ((v1-14 (-> arg3 param 0)) + (a0-4 (-> arg3 param 1)) + (v1-15 (logand v1-14 3)) + ) + (set! (-> self rank) (the-as int v1-15)) + (cond + ((< 15 (the-as int a0-4)) + (cond + ((zero? v1-15) + (set! (-> self race-seconds) 33000.0) + ) + ((= v1-15 1) + (set! (-> self race-seconds) 34500.0) + ) + (else + (set! (-> self race-seconds) 36000.0) + ) + ) + ) + ((< 10 (the-as int a0-4)) + (cond + ((zero? v1-15) + (set! (-> self race-seconds) 31800.0) + ) + ((= v1-15 1) + (set! (-> self race-seconds) 33300.0) + ) + (else + (set! (-> self race-seconds) 34800.0) + ) + ) + ) + ((< 5 (the-as int a0-4)) + (cond + ((zero? v1-15) + (set! (-> self race-seconds) 30600.0) + ) + ((= v1-15 1) + (set! (-> self race-seconds) 32100.0) + ) + (else + (set! (-> self race-seconds) 33600.0) + ) + ) + ) + ((zero? v1-15) + (set! (-> self race-seconds) 30000.0) + ) + ((= v1-15 1) + (set! (-> self race-seconds) 31500.0) + ) + (else + (set! (-> self race-seconds) 33000.0) + ) + ) + ) + (logclear! (-> self mask) (process-mask actor-pause)) + (set! + (-> self race-start-time) + (-> *display* game-frame-counter) + ) + (go flying-lurker-fly) + ) + ) + ) + ) + +;; definition for function flying-lurker-play-intro +;; INFO: Return type mismatch (pointer process) vs none. +(defbehavior flying-lurker-play-intro flying-lurker () + (logclear! (-> self mask) (process-mask actor-pause)) + (close-specific-task! (game-task plunger-lurker-hit) (task-status unknown)) + (while + (and + *target* + (logtest? (-> *target* control unknown-surface00 flags) 2048) + (zero? (logand (-> *target* control status) 1)) + ) + (suspend) + ) + (while (not (process-grab? *target*)) + (suspend) + ) + (kill-current-level-hint '(notice) '() 'exit) + (while + (or + (-> *setting-control* current talking) + (-> *setting-control* current spooling) + (-> *setting-control* current hint) + (!= (-> *level* loading-level) (-> *level* level-default)) + ) + (suspend) + ) + (suspend) + (kill-current-level-hint '() '() 'die) + (suspend) + (let* ((gp-0 (get-process *default-dead-pool* manipy #x4000)) + (gp-1 (ppointer->handle (when gp-0 + (let ((t9-5 (method-of-type manipy activate))) + (t9-5 + (the-as manipy gp-0) + self + 'manipy + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + gp-0 + manipy-init + (-> self entity extra trans) + (-> self entity) + *ogrecam-sg* + #f + ) + (-> gp-0 ppointer) + ) + ) + ) + ) + (let + ((s5-0 (the-as othercam (get-process *default-dead-pool* othercam #x4000)))) + (ppointer->handle (when s5-0 + (let ((t9-8 (method-of-type othercam activate))) + (t9-8 + s5-0 + (-> gp-1 process 0) + 'othercam + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s5-0 + othercam-init-by-other + (-> gp-1 process 0) + 4 + #f + #t + ) + (-> s5-0 ppointer) + ) + ) + ) + (let ((a1-9 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-9 from) self) + (set! (-> a1-9 num-params) 1) + (set! (-> a1-9 message) 'eval) + (set! + (-> a1-9 param 0) + (the-as + uint + (lambda :behavior manipy + () + (let ((v0-0 (logior (-> self draw status) 32))) + (set! (-> self draw status) v0-0) + v0-0 + ) + ) + ) + ) + (send-event-function (handle->process gp-1) a1-9) + ) + (let ((a1-10 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-10 from) self) + (set! (-> a1-10 num-params) 1) + (set! (-> a1-10 message) 'clone-copy-trans) + (set! (-> a1-10 param 0) (the-as uint #f)) + (send-event-function (-> gp-1 process 0) a1-10) + ) + (let ((a1-11 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-11 from) self) + (set! (-> a1-11 num-params) 1) + (set! (-> a1-11 message) 'anim-mode) + (set! (-> a1-11 param 0) (the-as uint 'clone-anim)) + (send-event-function (-> gp-1 process 0) a1-11) + ) + (let ((a1-12 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-12 from) self) + (set! (-> a1-12 num-params) 2) + (set! (-> a1-12 message) 'clone) + (set! (-> a1-12 param 0) (the-as uint (process->handle self))) + (set! (-> a1-12 param 1) (the-as uint 2)) + (let ((t9-13 send-event-function) + (v1-58 (-> self link next)) + ) + (t9-13 (if v1-58 + (-> v1-58 extra process) + ) + a1-12 + ) + ) + ) + (ja-play-spooled-anim + (new 'static 'spool-anim + :name "flying-lurker-intro" + :index 7 + :parts 2 + :command-list '() + ) + (the-as art-joint-anim #f) + (the-as art-joint-anim #f) + (the-as (function process-drawable symbol) false-func) + ) + (if (handle->process gp-1) + (deactivate (-> gp-1 process 0)) + ) + ) + (process-release? *target*) + (let ((gp-2 (get-process *default-dead-pool* process #x4000))) + (when gp-2 + (let ((t9-18 (method-of-type process activate))) + (t9-18 gp-2 self 'process (the-as pointer #x70004000)) + ) + (run-next-time-in-process + gp-2 + (lambda :behavior process + () + (let ((gp-0 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) gp-0) 30) + (suspend) + ) + ) + (level-hint-spawn + (game-text-id assistant-voicebox-intro-ogre-race) + "asstvb24" + (the-as entity #f) + *entity-pool* + (game-task none) + ) + (none) + ) + ) + (-> gp-2 ppointer) + ) + ) + (none) + ) + +;; failed to figure out what this is: +(defstate flying-lurker-start (flying-lurker) + :event + flying-lurker-handler + :exit + (behavior () + (clear-pending-settings-from-process *setting-control* self 'allow-progress) + (none) + ) + :code + (behavior () + (when (play-movie?) + (set-setting! *setting-control* self 'allow-progress #f 0.0 0) + (flying-lurker-play-intro) + ) + (flying-lurker-inc-try-count) + (ja-channel-set! 1) + (let ((v1-6 (-> self skel root-channel 0))) + (set! + (-> v1-6 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + ) + (let* ((v1-8 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-9 (the-as float (logior #x3f800000 v1-8))) + (f0-2 (+ -1.0 v1-9)) + ) + (cond + ((< 0.8333333 f0-2) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 2) + (set! (-> a1-1 message) 'fly-away) + (set! (-> a1-1 param 0) (the-as uint 18)) + (set! (-> a1-1 param 1) (-> self try-count)) + (send-event-function self a1-1) + ) + ) + ((< 0.6666667 f0-2) + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) self) + (set! (-> a1-2 num-params) 2) + (set! (-> a1-2 message) 'fly-away) + (set! (-> a1-2 param 0) (the-as uint 33)) + (set! (-> a1-2 param 1) (-> self try-count)) + (send-event-function self a1-2) + ) + ) + ((< 0.5 f0-2) + (let ((a1-3 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-3 from) self) + (set! (-> a1-3 num-params) 2) + (set! (-> a1-3 message) 'fly-away) + (set! (-> a1-3 param 0) (the-as uint 258)) + (set! (-> a1-3 param 1) (-> self try-count)) + (send-event-function self a1-3) + ) + ) + ((< 0.33333334 f0-2) + (let ((a1-4 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-4 from) self) + (set! (-> a1-4 num-params) 2) + (set! (-> a1-4 message) 'fly-away) + (set! (-> a1-4 param 0) (the-as uint 288)) + (set! (-> a1-4 param 1) (-> self try-count)) + (send-event-function self a1-4) + ) + ) + ((< 0.16666667 f0-2) + (let ((a1-5 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-5 from) self) + (set! (-> a1-5 num-params) 2) + (set! (-> a1-5 message) 'fly-away) + (set! (-> a1-5 param 0) (the-as uint 513)) + (set! (-> a1-5 param 1) (-> self try-count)) + (send-event-function self a1-5) + ) + ) + (else + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) self) + (set! (-> a1-6 num-params) 2) + (set! (-> a1-6 message) 'fly-away) + (set! (-> a1-6 param 0) (the-as uint 528)) + (set! (-> a1-6 param 1) (-> self try-count)) + (send-event-function self a1-6) + ) + ) + ) + ) + (none) + ) + :post + (the-as (function none :behavior flying-lurker) ja-post) + ) + +;; failed to figure out what this is: +(defstate flying-lurker-clone (flying-lurker) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'die) + (let ((v1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-1 from) arg0) + (set! (-> v1-1 num-params) arg1) + (set! (-> v1-1 message) arg2) + (set! (-> v1-1 param 0) (-> arg3 param 0)) + (set! (-> v1-1 param 1) (-> arg3 param 1)) + (set! (-> v1-1 param 2) (-> arg3 param 2)) + (set! (-> v1-1 param 3) (-> arg3 param 3)) + (set! (-> v1-1 param 4) (-> arg3 param 4)) + (set! (-> v1-1 param 5) (-> arg3 param 5)) + (set! (-> v1-1 param 6) (-> arg3 param 6)) + (let ((t9-0 send-event-function) + (a1-1 (-> self link next)) + ) + (t9-0 (if a1-1 + (-> a1-1 extra process) + ) + v1-1 + ) + ) + ) + (dummy-18 self) + (deactivate self) + ) + ((= v1-0 'sleep) + (let ((v1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-6 from) arg0) + (set! (-> v1-6 num-params) arg1) + (set! (-> v1-6 message) arg2) + (set! (-> v1-6 param 0) (-> arg3 param 0)) + (set! (-> v1-6 param 1) (-> arg3 param 1)) + (set! (-> v1-6 param 2) (-> arg3 param 2)) + (set! (-> v1-6 param 3) (-> arg3 param 3)) + (set! (-> v1-6 param 4) (-> arg3 param 4)) + (set! (-> v1-6 param 5) (-> arg3 param 5)) + (set! (-> v1-6 param 6) (-> arg3 param 6)) + (let ((t9-3 send-event-function) + (a1-3 (-> self link next)) + ) + (t9-3 (if a1-3 + (-> a1-3 extra process) + ) + v1-6 + ) + ) + ) + (go flying-lurker-sleep) + ) + ((= v1-0 'reset) + (let ((v1-9 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-9 from) arg0) + (set! (-> v1-9 num-params) arg1) + (set! (-> v1-9 message) arg2) + (set! (-> v1-9 param 0) (-> arg3 param 0)) + (set! (-> v1-9 param 1) (-> arg3 param 1)) + (set! (-> v1-9 param 2) (-> arg3 param 2)) + (set! (-> v1-9 param 3) (-> arg3 param 3)) + (set! (-> v1-9 param 4) (-> arg3 param 4)) + (set! (-> v1-9 param 5) (-> arg3 param 5)) + (set! (-> v1-9 param 6) (-> arg3 param 6)) + (let ((t9-5 send-event-function) + (a1-5 (-> self link next)) + ) + (t9-5 (if a1-5 + (-> a1-5 extra process) + ) + v1-9 + ) + ) + ) + (deactivate self) + ) + (else + (flying-lurker-handler arg0 arg1 arg2 arg3) + ) + ) + ) + ) + ) + :exit + (behavior () + (ja-channel-set! 0) + (none) + ) + :code + (behavior ((arg0 handle) (arg1 string)) + (clone-anim arg0 3 #t arg1) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate flying-lurker-idle (flying-lurker) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'saw-player) + (set! (-> self take-off) #t) + (when (-> self link prev) + (entity-birth-no-kill (-> self link prev)) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) arg0) + (set! (-> a1-1 num-params) arg1) + (set! (-> a1-1 message) arg2) + (set! (-> a1-1 param 0) (-> arg3 param 0)) + (set! (-> a1-1 param 1) (-> arg3 param 1)) + (set! (-> a1-1 param 2) (-> arg3 param 2)) + (set! (-> a1-1 param 3) (-> arg3 param 3)) + (set! (-> a1-1 param 4) (-> arg3 param 4)) + (set! (-> a1-1 param 5) (-> arg3 param 5)) + (set! (-> a1-1 param 6) (-> arg3 param 6)) + (let ((t9-1 send-event-function) + (v1-13 (-> self link prev)) + ) + (t9-1 (if v1-13 + (-> v1-13 extra process) + ) + a1-1 + ) + ) + ) + ) + ) + ((= v1-0 'clone) + (when (-> self link next) + (entity-birth-no-kill (-> self link next)) + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) self) + (set! (-> a1-2 num-params) 2) + (set! (-> a1-2 message) 'clone) + (set! (-> a1-2 param 0) (-> arg3 param 0)) + (set! (-> a1-2 param 1) (+ (-> arg3 param 1) -1)) + (let ((t9-3 send-event-function) + (v1-25 (-> self link next)) + ) + (t9-3 (if v1-25 + (-> v1-25 extra process) + ) + a1-2 + ) + ) + ) + ) + (case (-> arg3 param 1) + ((2) + (go + flying-lurker-clone + (the-as handle (-> arg3 param 0)) + "flying-lurker-b-" + ) + ) + ((1) + (go + flying-lurker-clone + (the-as handle (-> arg3 param 0)) + "flying-lurker-c-" + ) + ) + ) + ) + (else + (flying-lurker-handler arg0 arg1 arg2 arg3) + ) + ) + ) + ) + ) + :exit + (behavior () + (set! (-> self draw status) (logand -3 (-> self draw status))) + (none) + ) + :trans + (behavior () + (spool-push *art-control* "flying-lurker-intro" 0 self -99.0) + (if (and (-> self take-off) (first?)) + (go flying-lurker-start) + ) + (none) + ) + :code + (behavior () + (local-vars (gp-0 int) (f30-0 float)) + 1.0 + 0 + (cond + ((not (-> self link next)) + (set! f30-0 0.9) + (set! gp-0 0) + ) + ((not (-> self link prev)) + (set! f30-0 1.0) + (set! gp-0 5) + ) + (else + (set! f30-0 1.2) + (set! gp-0 11) + ) + ) + (while #t + (cond + ((play-movie?) + (ja-channel-set! 0) + (if + (= + (get-task-status (game-task plunger-lurker-hit)) + (task-status invalid) + ) + (go flying-lurker-die) + ) + (when + (and + *target* + (>= + 172032.0 + (vector-vector-xz-distance + (-> self root trans) + (-> *target* control trans) + ) + ) + ) + (process-grab? *target*) + (let ((s5-0 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) s5-0) 300) + (suspend) + ) + ) + (process-release? *target*) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 0) + (set! (-> a1-1 message) 'saw-player) + (send-event-function self a1-1) + ) + ) + (suspend) + 0 + ) + (else + (let ((v1-27 (-> self skel root-channel 0))) + (set! + (-> v1-27 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + ) + (let ((a0-9 (-> self skel root-channel 0))) + (set! + (-> a0-9 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + (set! + (-> a0-9 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 5)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-9 param 1) f30-0) + (set! (-> a0-9 frame-num) (the float gp-0)) + (joint-control-channel-group! + a0-9 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (when + (and + *target* + (>= + 172032.0 + (vector-vector-xz-distance + (-> self root trans) + (-> *target* control trans) + ) + ) + ) + (let ((a1-4 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-4 from) self) + (set! (-> a1-4 num-params) 0) + (set! (-> a1-4 message) 'saw-player) + (send-event-function self a1-4) + ) + ) + (suspend) + (let ((a0-12 (-> self skel root-channel 0))) + (set! + (-> a0-12 param 0) + (the float (+ (-> a0-12 frame-group data 0 length) -1)) + ) + (set! (-> a0-12 param 1) f30-0) + (joint-control-channel-group-eval! + a0-12 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (set! gp-0 0) + ) + ) + ) + (none) + ) + :post + (the-as (function none :behavior flying-lurker) ja-post) + ) + +;; definition for method 11 of type flying-lurker +;; Used lq/sq +(defmethod copy-defaults! flying-lurker ((obj flying-lurker) (arg0 res-lump)) + (stack-size-set! (-> obj main-thread) 512) + (set! (-> obj root) (new 'process 'trsqv)) + (process-drawable-from-entity! obj arg0) + (dummy-14 obj *flying-lurker-sg* '()) + (set! (-> obj link) (new 'process 'actor-link-info obj)) + (set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0)) + (logior! + (-> obj path flags) + (path-control-flag display draw-line draw-point draw-text) + ) + (set! (-> obj root pause-adjust-distance) 122880.0) + (set! (-> obj curve-position) 0.0) + (cond + ((play-movie?) + (eval-path-curve! + (-> obj path) + (-> obj root trans) + (-> obj curve-position) + 'interp + ) + (TODO-RENAME-14 (-> obj path) (-> obj tangent) (-> obj curve-position)) + (quaternion-identity! (-> obj root quat)) + ) + (else + (flying-lurker-move) + (flying-lurker-rotate) + ) + ) + (set! (-> obj y-offset) 0.0) + (set! (-> obj y-vel) 0.0) + (set! (-> obj last-look-time) 0) + (set! (-> obj time-to-next-look) 0) + (set! (-> obj draw origin-joint-index) (the-as uint 4)) + (set! (-> obj draw shadow-joint-index) (the-as uint 4)) + (set! (-> obj take-off) #f) + (set-vector! (-> obj default-bounds) 0.0 8192.0 0.0 24576.0) + (set! (-> obj draw bounds quad) (-> obj default-bounds quad)) + (set! + (-> obj draw shadow-ctrl) + (new + 'process + 'shadow-control + 131072.0 + 151552.0 + 614400.0 + (the-as float 60) + 409600.0 + ) + ) + (let ((v1-27 (-> obj draw shadow-ctrl))) + (set! (-> v1-27 settings flags) (logand -33 (-> v1-27 settings flags))) + ) + 0 + (set! (-> obj alt-actor) (entity-actor-lookup arg0 'alt-actor 0)) + (set! (-> obj shadow-backup) (-> obj draw shadow)) + (set! (-> obj try-counted) #f) + (if (= (get-task-status (game-task plunger-lurker-hit)) (task-status invalid)) + (go flying-lurker-die) + (go flying-lurker-idle) + ) + (none) + ) + + + + diff --git a/goal_src/pc_debug/pc-pad-utils.gc b/goal_src/pc_debug/pc-pad-utils.gc index 2f925ba882..d6e1c448b1 100644 --- a/goal_src/pc_debug/pc-pad-utils.gc +++ b/goal_src/pc_debug/pc-pad-utils.gc @@ -5,7 +5,7 @@ ;; This file is used for debugging and testing the PC port pad (controller/input) implementation. ;; It contains a function for creating a process for debugging cpad inputs and a function to kill that process. ;; It also contains a function to start a process to map keys to cpad inputs (X, circle, etc.), and another one to kill it. -;; THIS FILE IS DEBUG ONLY and will not work if *debug-segment* is not enabled. +;; This file should *not* be included as part of any packages, it should be manually loaded by the user. ;; To run this: @@ -17,7 +17,6 @@ (ml "goal_src/pc_debug/pc-pad-utils.gc") ;; build and load this file. |# -(cond (*debug-segment* ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; types @@ -65,6 +64,7 @@ "SQUARE" )) +;; there is a matching enum in newpad (defenum pc-pad-input-status (disabled) (enabled) @@ -233,7 +233,7 @@ (until (time-passed? PC_PAD_INPUT_NOTICE_TIME) (with-dma-buffer-add-bucket ((buf (-> (current-frame) debug-buf)) (bucket-id debug-draw1)) - (draw-string-xy "KEY MAPPING COMPLETE!" buf 256 96 (font-color green) (font-flags shadow kerning large middle)) + (draw-string-xy "KEY MAPPING COMPLETE!~%SETTINGS SAVED." buf 256 96 (font-color green) (font-flags shadow kerning large middle)) ) (suspend) ) @@ -279,5 +279,5 @@ ) ) -) -(else (format #t "No debug memory in use. pc-pad-utils not loaded."))) \ No newline at end of file + + diff --git a/goalc/compiler/IR.cpp b/goalc/compiler/IR.cpp index f1bc790bc7..873ebce600 100644 --- a/goalc/compiler/IR.cpp +++ b/goalc/compiler/IR.cpp @@ -985,7 +985,9 @@ void IR_StoreConstOffset::do_codegen(emitter::ObjectGenerator* gen, IGen::store_goal_vf(base_reg, value_reg, emitter::gRegInfo.get_offset_reg(), m_offset), irec); } else { - throw std::runtime_error("IR_StoreConstOffset::do_codegen can't handle this"); + throw std::runtime_error( + fmt::format("IR_StoreConstOffset::do_codegen can't handle this (c {} sz {})", + m_value->ireg().reg_class, m_size)); } } diff --git a/goalc/compiler/compilation/Define.cpp b/goalc/compiler/compilation/Define.cpp index b7bcd376bd..32a8160938 100644 --- a/goalc/compiler/compilation/Define.cpp +++ b/goalc/compiler/compilation/Define.cpp @@ -4,6 +4,7 @@ */ #include "goalc/compiler/Compiler.h" +#include "common/log/log.h" /*! * Define or set a global value. Has some special magic to store data for functions which may be @@ -54,7 +55,8 @@ Val* Compiler::compile_define(const goos::Object& form, const goos::Object& rest do_typecheck = !get_true_or_false(form, args.named.at("no-typecheck")); } if (do_typecheck) { - typecheck(form, existing_type->second, in_gpr->type(), "define on existing symbol"); + typecheck(form, existing_type->second, in_gpr->type(), + fmt::format("define on existing symbol {}", sym.as_symbol()->name)); } } @@ -296,4 +298,4 @@ Val* Compiler::compile_set(const goos::Object& form, const goos::Object& rest, E auto source_reg = source->to_reg(form, env); auto dest = compile_error_guard(destination, env); return do_set(form, dest, source_reg, source, env); -} \ No newline at end of file +} diff --git a/test/decompiler/reference/decompiler-macros.gc b/test/decompiler/reference/decompiler-macros.gc index f604707557..6ce7292197 100644 --- a/test/decompiler/reference/decompiler-macros.gc +++ b/test/decompiler/reference/decompiler-macros.gc @@ -12,7 +12,7 @@ ) ) -(defmacro suspend() +(defmacro suspend () '(none) ) @@ -159,12 +159,15 @@ ) +;; meters are stored as (usually) a float, scaled by 4096. +;; this gives you reasonable accuracy as an integer. (defglobalconstant METER_LENGTH 4096.0) (defmacro meters (x) "Convert number to meters. If the input is a constant float or integer, the result will be a - compile time constant float. Otherwise, it will not be constant." + compile time constant float. Otherwise, it will not be constant. + Returns float." ;; we don't have enough constant propagation for the compiler to figure this out. (cond @@ -180,8 +183,13 @@ ) ) +;; rotations are stored in 65,536ths of a full rotation. +;; like with meters, you get a reasonable accuracy as an integer. +;; additionally, it is a power-of-two, so wrapping rotations can be done +;; quickly by converting to an int, masking, and back to float (defglobalconstant DEGREES_PER_ROT 65536.0) +;; this was deg in GOAL (defmacro degrees (x) "Convert number to degrees unit. Will keep a constant float/int constant." @@ -197,17 +205,36 @@ ) ) +;; times are stored in 300ths of a second. +;; this divides evenly into frames at both 50 and 60 fps. +;; typically these are stored as integers as more precision is not useful. +;; an unsigned 32-bit integer can store about 150 days (defglobalconstant TICKS_PER_SECOND 300) ;; 5 t/frame @ 60fps, 6 t/frame @ 50fps +;; this was usec in GOAL (defmacro seconds (x) - "Convert number to seconds unit." + "Convert number to seconds unit. + Returns uint." (cond - ((float? x) - (* 1.0 TICKS_PER_SECOND x) - ) ((integer? x) (* TICKS_PER_SECOND x) ) + ((float? x) + (* 1 (* 1.0 x TICKS_PER_SECOND)) + ) + (#t + `(the uint (* TICKS_PER_SECOND ,x)) + ) + ) + ) + +(defmacro fsec (x) + "Convert number to seconds unit. + Returns float." + (cond + ((or (integer? x) (float? x)) + (* 1.0 TICKS_PER_SECOND x) + ) (#t `(* 1.0 TICKS_PER_SECOND ,x) ) @@ -375,6 +402,10 @@ (push! *defstate-type-stack* beh-type) ) ) +(defmacro clear-def-state-stack () + (set! *defstate-type-stack* '()) + `(none) + ) (defmacro defstate (state-name parents &key (virtual #f) &key (event #f) @@ -389,9 +420,34 @@ (with-gensyms (new-state) (let ((defstate-type (first parents))) (when (not (null? *defstate-type-stack*)) - (ferror "*defstate-type-stack* leaked! An error probably happened in a previous defstate. stack is: {}" *defstate-type-stack*) + (fmt #t "*defstate-type-stack* leaked! An error probably happened in a previous defstate. stack is: {}" + *defstate-type-stack*) ) (set! *defstate-type-stack* '()) + ;; check for default handlers + (let ((default-handlers (assoc defstate-type *default-state-handlers*))) + (when (not (null? default-handlers)) + (set! default-handlers (cdr default-handlers)) + (when (and (not event) (car default-handlers)) + (set! event (car default-handlers))) + (set! default-handlers (cdr default-handlers)) + (when (and (not enter) (car default-handlers)) + (set! enter (car default-handlers))) + (set! default-handlers (cdr default-handlers)) + (when (and (not trans) (car default-handlers)) + (set! trans (car default-handlers))) + (set! default-handlers (cdr default-handlers)) + (when (and (not exit) (car default-handlers)) + (set! exit (car default-handlers))) + (set! default-handlers (cdr default-handlers)) + (when (and (not code) (car default-handlers)) + (set! code (car default-handlers))) + (set! default-handlers (cdr default-handlers)) + (when (and (not post) (car default-handlers)) + (set! post (car default-handlers))) + (set! default-handlers (cdr default-handlers)) + ) + ) (def-state-check-behavior event defstate-type) (def-state-check-behavior enter defstate-type) (def-state-check-behavior trans defstate-type) @@ -422,14 +478,29 @@ ) ) - (defmacro behavior (bindings &rest body) "Define an anonymous behavior for a process state. This may only be used inside a defstate!" - + (let ((behavior-type (first *defstate-type-stack*))) - (pop! *defstate-type-stack*) - `(lambda :behavior ,behavior-type ,bindings ,@body) + (pop! *defstate-type-stack*) + `(lambda :behavior ,behavior-type ,bindings ,@body) + ) + ) + +;; set the default handler functions for a process's state handlers +(seval (define *default-state-handlers* '())) +(defmacro defstatehandler (proc + &key (event #f) + &key (enter #f) + &key (trans #f) + &key (exit #f) + &key (code #f) + &key (post #f)) + (if (null? (assoc proc *default-state-handlers*)) + (push! *default-state-handlers* (cons proc (list event enter trans exit code post))) + (fmt #t "default state handlers for {} already defined, ignoring duplicate.\n" proc (cadr (assoc proc *default-state-handlers*))) ) + `(none) ) (defmacro sext32 (in) @@ -440,19 +511,6 @@ `(set! ,result (sext32 (sar (logand #xffffffff (the-as int ,in)) ,sa))) ) -(defmacro res-lump-float (lump name &key (tag-ptr (the-as (pointer res-tag) #f)) &key (default 0.0)) - "Helper macro to get a float from a res-lump with no interpolation." - `((method-of-type res-lump get-property-value-float) - ,lump - ,name - 'interp - -1000000000.0 - ,default - ,tag-ptr - *res-static-buf* - ) - ) - (defmacro res-lump-data (lump name type &key (tag-ptr (the-as (pointer res-tag) #f)) &key (time -1000000000.0)) "Helper macro to get data from a res-lump without interpolation." `(the-as ,type ((method-of-type res-lump get-property-data) @@ -467,13 +525,26 @@ ) ) +(defmacro res-lump-data-exact (lump name type &key (tag-ptr (the-as (pointer res-tag) #f)) &key (time 0.0)) + "Helper macro to get start of data from a res-lump." + `(the-as ,type ((method-of-type res-lump get-property-data) + ,lump + ,name + 'exact + ,time + (the-as pointer #f) + ,tag-ptr + *res-static-buf* + ) + ) + ) -(defmacro res-lump-struct (lump name type &key (tag-ptr (the-as (pointer res-tag) #f))) +(defmacro res-lump-struct (lump name type &key (tag-ptr (the-as (pointer res-tag) #f)) &key (time -1000000000.0)) `(the-as ,type ((method-of-type res-lump get-property-struct) ,lump ,name 'interp - -1000000000.0 + ,time (the-as structure #f) ,tag-ptr *res-static-buf* @@ -481,13 +552,26 @@ ) ) -(defmacro res-lump-value (lump name type &key (tag-ptr (the-as (pointer res-tag) #f)) &key (default (the-as uint128 0))) +(defmacro res-lump-struct-exact (lump name type &key (tag-ptr (the-as (pointer res-tag) #f)) &key (time 0.0)) + `(the-as ,type ((method-of-type res-lump get-property-struct) + ,lump + ,name + 'exact + ,time + (the-as structure #f) + ,tag-ptr + *res-static-buf* + ) + ) + ) + +(defmacro res-lump-value (lump name type &key (tag-ptr (the-as (pointer res-tag) #f)) &key (default (the-as uint128 0)) &key (time -1000000000.0)) "Helper macro to get a value from a res-lump with no interpolation." `(the-as ,type ((method-of-type res-lump get-property-value) ,lump ,name 'interp - -1000000000.0 + ,time ,default ,tag-ptr *res-static-buf* @@ -495,6 +579,19 @@ ) ) +(defmacro res-lump-float (lump name &key (tag-ptr (the-as (pointer res-tag) #f)) &key (default 0.0) &key (time -1000000000.0)) + "Helper macro to get a float from a res-lump with no interpolation." + `((method-of-type res-lump get-property-value-float) + ,lump + ,name + 'interp + ,time + ,default + ,tag-ptr + *res-static-buf* + ) + ) + ;; run the given function in a process right now. ;; will return to here when: ;; - you return diff --git a/test/decompiler/reference/engine/collide/collide-cache-h_REF.gc b/test/decompiler/reference/engine/collide/collide-cache-h_REF.gc index f3d977217c..b3e0be7640 100644 --- a/test/decompiler/reference/engine/collide/collide-cache-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-cache-h_REF.gc @@ -131,24 +131,24 @@ ;; definition of type collide-cache-prim (deftype collide-cache-prim (structure) - ((prim-core collide-prim-core :inline :offset-assert 0) - (ccache basic :offset-assert 32) - (prim basic :offset-assert 36) - (first-tri uint16 :offset-assert 40) - (num-tris uint16 :offset-assert 42) - (unused uint8 4 :offset-assert 44) - (world-sphere vector :inline :offset 0) - (collide-as uint64 :offset 16) - (action uint32 :offset 24) - (offense int8 :offset 28) - (prim-type int8 :offset 29) + ((prim-core collide-prim-core :inline :offset-assert 0) + (ccache collide-cache :offset-assert 32) + (prim collide-shape-prim :offset-assert 36) + (first-tri uint16 :offset-assert 40) + (num-tris uint16 :offset-assert 42) + (unused uint8 4 :offset-assert 44) + (world-sphere vector :inline :offset 0) + (collide-as uint64 :offset 16) + (action uint32 :offset 24) + (offense int8 :offset 28) + (prim-type int8 :offset 29) ) :method-count-assert 11 :size-assert #x30 :flag-assert #xb00000030 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-9 (_type_ float pointer (pointer collide-cache) float int) float 9) + (dummy-10 (_type_ float pointer (pointer collide-cache) float int) float 10) ) ) @@ -186,30 +186,30 @@ :size-assert #x8670 :flag-assert #x2100008670 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-9 (_type_) none 9) + (dummy-10 (_type_ vector vector float int process collide-mesh-cache-tri int) float 10) (dummy-11 (_type_ collide-using-spheres-params) none 11) - (dummy-12 (_type_ vector float uint process bone uint) float 12) + (fill-and-probe-using-y-probe (_type_ vector float uint process collide-tri-result uint) float 12) (dummy-13 (_type_ int uint process-drawable uint) none 13) - (dummy-14 () none 14) + (dummy-14 (_type_ vector vector float int process int) none 14) (dummy-15 (_type_ int) none 15) (dummy-16 (_type_ vector float uint process uint) none 16) - (dummy-17 () none 17) - (dummy-18 () none 18) - (dummy-19 () none 19) - (dummy-20 (_type_ vector float uint bone uint) none 20) - (dummy-21 () none 21) - (dummy-22 () none 22) - (dummy-23 () none 23) - (dummy-24 () none 24) - (dummy-25 () none 25) - (dummy-26 () none 26) - (dummy-27 () none 27) - (dummy-28 () none 28) - (dummy-29 () none 29) - (dummy-30 () none 30) - (dummy-31 () none 31) - (dummy-32 () none 32) + (initialize (_type_) none 17) + (dummy-18 (_type_ vector vector float int collide-mesh-cache-tri int) float 18) + (probe-using-spheres (_type_) none 19) + (dummy-20 (_type_ vector float uint collide-tri-result uint) float 20) + (dummy-21 (_type_) none 21) + (dummy-22 (_type_) none 22) + (dummy-23 (_type_) none 23) + (dummy-24 (_type_) none 24) + (dummy-25 (_type_) none 25) + (dummy-26 (_type_) none 26) + (dummy-27 (_type_) none 27) + (dummy-28 (_type_) none 28) + (dummy-29 (_type_) none 29) + (dummy-30 (_type_) none 30) + (dummy-31 (_type_) none 31) + (dummy-32 (_type_) none 32) ) ) diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc index 3f8b04754f..9c41e4e88d 100644 --- a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc @@ -244,9 +244,9 @@ (dummy-9 () none 9) (dummy-10 (_type_ uint) collide-shape-prim 10) (dummy-11 () none 11) - (dummy-12 () none 12) - (dummy-13 () none 13) - (dummy-14 () none 14) + (add-fg-prim-using-box (_type_) none 12) + (add-fg-prim-using-line-sphere (_type_) none 13) + (add-fg-prim-using-y-probe (_type_) none 14) (dummy-15 () none 15) (dummy-16 () none 16) (dummy-17 () none 17) diff --git a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc index 80c02b0f79..c4eb2efd17 100644 --- a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc @@ -9,7 +9,7 @@ :size-assert #x20 :flag-assert #x1300000020 (:methods - (dummy-18 () none 18) + (dummy-18 (_type_ vector) none 18) ) ) @@ -33,7 +33,7 @@ ;; definition of type drawable-inline-array-ambient (deftype drawable-inline-array-ambient (drawable-inline-array) ((data drawable-ambient 1 :inline :offset-assert 32) - (pad uint8 4 :offset-assert 64) + (pad uint32 :offset-assert 64) ) :method-count-assert 18 :size-assert #x44 @@ -60,22 +60,22 @@ ;; definition of type level-hint (deftype level-hint (process) - ((text-id-to-display uint32 :offset-assert 112) - (sound-to-play basic :offset-assert 116) - (trans vector :offset-assert 120) - (sound-id sound-id :offset-assert 124) - (mode basic :offset-assert 128) - (total-time uint64 :offset-assert 136) - (total-off-time uint64 :offset-assert 144) - (last-time uint64 :offset-assert 152) - (voicebox uint64 :offset-assert 160) + ((text-id-to-display game-text-id :offset-assert 112) + (sound-to-play string :offset-assert 116) + (trans vector :offset-assert 120) + (sound-id sound-id :offset-assert 124) + (mode symbol :offset-assert 128) + (total-time int64 :offset-assert 136) + (total-off-time int64 :offset-assert 144) + (last-time int64 :offset-assert 152) + (voicebox handle :offset-assert 160) ) :heap-base #x40 :method-count-assert 16 :size-assert #xa8 :flag-assert #x10004000a8 (:methods - (dummy-14 () none 14) + (print-text (_type_) none 14) (dummy-15 (_type_) symbol 15) ) ) diff --git a/test/decompiler/reference/engine/entity/entity-h_REF.gc b/test/decompiler/reference/engine/entity/entity-h_REF.gc index dbbfa2850b..938755d11e 100644 --- a/test/decompiler/reference/engine/entity/entity-h_REF.gc +++ b/test/decompiler/reference/engine/entity/entity-h_REF.gc @@ -166,17 +166,17 @@ ;; definition of type entity-ambient-data (deftype entity-ambient-data (structure) - ((user-object object 3 :offset-assert 0) - (function basic :offset-assert 12) - (quad uint128 :offset 0) - (user-uint64 uint64 1 :offset 0) - (user-float float 3 :offset 0) - (user-int32 int32 3 :offset 0) - (user-uint32 uint32 3 :offset 0) - (user-int16 int16 6 :offset 0) - (user-uint16 uint16 6 :offset 0) - (user-int8 int8 12 :offset 0) - (user-uint8 uint8 12 :offset 0) + ((user-object object 3 :offset-assert 0) + (function (function drawable-ambient vector none) :offset-assert 12) + (quad uint128 :offset 0) + (user-uint64 uint64 1 :offset 0) + (user-float float 3 :offset 0) + (user-int32 int32 3 :offset 0) + (user-uint32 uint32 3 :offset 0) + (user-int16 int16 6 :offset 0) + (user-uint16 uint16 6 :offset 0) + (user-int8 int8 12 :offset 0) + (user-uint8 uint8 12 :offset 0) ) :method-count-assert 9 :size-assert #x10 @@ -187,17 +187,17 @@ ;; Used lq/sq (defmethod inspect entity-ambient-data ((obj entity-ambient-data)) (format #t "[~8x] ~A~%" obj 'entity-ambient-data) - (format #t "~Tuser-object[3] @ #x~X~%" (-> obj user-object)) + (format #t "~Tuser-object[3] @ #x~X~%" (&-> obj quad)) (format #t "~Tfunction: ~A~%" (-> obj function)) (format #t "~Tquad: ~D~%" (-> obj quad)) - (format #t "~Tuser-uint64[1] @ #x~X~%" (-> obj user-object)) - (format #t "~Tuser-float[3] @ #x~X~%" (-> obj user-object)) - (format #t "~Tuser-int32[3] @ #x~X~%" (-> obj user-object)) - (format #t "~Tuser-uint32[3] @ #x~X~%" (-> obj user-object)) - (format #t "~Tuser-int16[6] @ #x~X~%" (-> obj user-object)) - (format #t "~Tuser-uint16[6] @ #x~X~%" (-> obj user-object)) - (format #t "~Tuser-int8[12] @ #x~X~%" (-> obj user-object)) - (format #t "~Tuser-uint8[12] @ #x~X~%" (-> obj user-object)) + (format #t "~Tuser-uint64[1] @ #x~X~%" (&-> obj quad)) + (format #t "~Tuser-float[3] @ #x~X~%" (&-> obj quad)) + (format #t "~Tuser-int32[3] @ #x~X~%" (&-> obj quad)) + (format #t "~Tuser-uint32[3] @ #x~X~%" (&-> obj quad)) + (format #t "~Tuser-int16[6] @ #x~X~%" (&-> obj quad)) + (format #t "~Tuser-uint16[6] @ #x~X~%" (&-> obj quad)) + (format #t "~Tuser-int8[12] @ #x~X~%" (&-> obj quad)) + (format #t "~Tuser-uint8[12] @ #x~X~%" (&-> obj quad)) obj ) @@ -224,12 +224,13 @@ ;; definition of type entity-ambient (deftype entity-ambient (entity) - () + ((ambient-data entity-ambient-data :offset 24) + ) :method-count-assert 29 :size-assert #x34 :flag-assert #x1d00000034 (:methods - (dummy-27 () none 27) + (draw-debug (_type_) none 27) (birth-ambient! (_type_) none 28) ) ) diff --git a/test/decompiler/reference/engine/game/game-info-h_REF.gc b/test/decompiler/reference/engine/game/game-info-h_REF.gc index d2e1b1386c..5b5b94d7af 100644 --- a/test/decompiler/reference/engine/game/game-info-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-info-h_REF.gc @@ -181,19 +181,19 @@ (total-deaths int32 :offset-assert 156) (continue-deaths int32 :offset-assert 160) (fuel-cell-deaths int32 :offset-assert 164) - (game-start-time uint64 :offset-assert 168) - (continue-time uint64 :offset-assert 176) - (death-time uint64 :offset-assert 184) - (hit-time uint64 :offset-assert 192) - (fuel-cell-pickup-time uint64 :offset-assert 200) - (fuel-cell-time (array uint64) :offset-assert 208) - (enter-level-time (array uint64) :offset-assert 212) - (in-level-time (array uint64) :offset-assert 216) - (blackout-time uint64 :offset-assert 224) - (letterbox-time uint64 :offset-assert 232) - (hint-play-time uint64 :offset-assert 240) - (display-text-time uint64 :offset-assert 248) - (display-text-handle uint64 :offset-assert 256) + (game-start-time int64 :offset-assert 168) + (continue-time int64 :offset-assert 176) + (death-time int64 :offset-assert 184) + (hit-time int64 :offset-assert 192) + (fuel-cell-pickup-time int64 :offset-assert 200) + (fuel-cell-time (array int64) :offset-assert 208) + (enter-level-time (array int64) :offset-assert 212) + (in-level-time (array int64) :offset-assert 216) + (blackout-time int64 :offset-assert 224) + (letterbox-time int64 :offset-assert 232) + (hint-play-time int64 :offset-assert 240) + (display-text-time int64 :offset-assert 248) + (display-text-handle handle :offset-assert 256) (death-movie-tick int32 :offset-assert 264) (want-auto-save symbol :offset-assert 268) (auto-save-proc handle :offset-assert 272) @@ -291,15 +291,15 @@ ) (set! (-> gp-0 fuel-cell-time) - (the-as (array uint64) (new 'global 'boxed-array uint64 116)) + (the-as (array int64) (new 'global 'boxed-array uint64 116)) ) (set! (-> gp-0 enter-level-time) - (the-as (array uint64) (new 'global 'boxed-array uint64 32)) + (the-as (array int64) (new 'global 'boxed-array uint64 32)) ) (set! (-> gp-0 in-level-time) - (the-as (array uint64) (new 'global 'boxed-array uint64 32)) + (the-as (array int64) (new 'global 'boxed-array uint64 32)) ) (set! *game-info* gp-0) gp-0 diff --git a/test/decompiler/reference/engine/game/game-info_REF.gc b/test/decompiler/reference/engine/game/game-info_REF.gc index 5f7b5ace9e..2428d1ad6c 100644 --- a/test/decompiler/reference/engine/game/game-info_REF.gc +++ b/test/decompiler/reference/engine/game/game-info_REF.gc @@ -150,10 +150,7 @@ ) (when (!= s5-0 (-> obj current-continue)) (set! (-> obj continue-deaths) 0) - (set! - (-> obj continue-time) - (the-as uint (-> *display* base-frame-counter)) - ) + (set! (-> obj continue-time) (-> *display* base-frame-counter)) ) ) (-> obj current-continue) @@ -262,29 +259,20 @@ (set! (-> obj continue-deaths) 0) (set! (-> obj fuel-cell-deaths) 0) (set! (-> obj death-pos length) 0) - (set! - (-> obj game-start-time) - (the-as uint (-> *display* base-frame-counter)) - ) - (set! - (-> obj fuel-cell-pickup-time) - (the-as uint (-> *display* base-frame-counter)) - ) - (set! - (-> obj continue-time) - (the-as uint (-> *display* base-frame-counter)) - ) - (set! (-> obj death-time) (the-as uint (-> *display* base-frame-counter))) - (set! (-> obj hit-time) (the-as uint (-> *display* base-frame-counter))) + (set! (-> obj game-start-time) (-> *display* base-frame-counter)) + (set! (-> obj fuel-cell-pickup-time) (-> *display* base-frame-counter)) + (set! (-> obj continue-time) (-> *display* base-frame-counter)) + (set! (-> obj death-time) (-> *display* base-frame-counter)) + (set! (-> obj hit-time) (-> *display* base-frame-counter)) (dotimes (v1-50 116) - (set! (-> obj fuel-cell-time 0) (the-as uint 0)) + (set! (-> obj fuel-cell-time 0) 0) (nop!) ) (dotimes (v1-53 32) (set! (-> obj money-per-level v1-53) (the-as uint 0)) (set! (-> obj deaths-per-level v1-53) (the-as uint 0)) - (set! (-> obj enter-level-time v1-53) (the-as uint 0)) - (set! (-> obj in-level-time v1-53) (the-as uint 0)) + (set! (-> obj enter-level-time v1-53) 0) + (set! (-> obj in-level-time v1-53) 0) (set! (-> obj level-opened v1-53) (the-as uint 0)) (nop!) ) @@ -405,9 +393,9 @@ (level-hint-spawn (game-text-id MISSING-orb-hint) "sksp0014" - #f + (the-as entity #f) *entity-pool* - 0 + (game-task none) ) ) (when (< 0.0 amount) @@ -455,14 +443,8 @@ ) ) (set! (-> obj fuel-cell-deaths) 0) - (set! - (-> obj fuel-cell-pickup-time) - (the-as uint (-> *display* base-frame-counter)) - ) - (set! - (-> obj fuel-cell-time s5-1) - (the-as uint (-> *display* base-frame-counter)) - ) + (set! (-> obj fuel-cell-pickup-time) (-> *display* base-frame-counter)) + (set! (-> obj fuel-cell-time s5-1) (-> *display* base-frame-counter)) (set! (-> obj fuel) (+ 1.0 (-> obj fuel))) (logior! (-> obj task-perm-list data s5-1 status) @@ -1195,7 +1177,7 @@ (-> obj name) (-> obj trans) (font-color white) - (new 'static 'vector2h :data (new 'static 'array int16 2 0 8)) + (new 'static 'vector2h :y 8) ) (let ((a3-2 (vector-z-quaternion! (new-stack-vector0) (-> obj quat)))) (add-debug-vector @@ -1679,7 +1661,7 @@ 0 ) (if (zero? (-> gp-0 display-text-handle)) - (set! (-> gp-0 display-text-handle) (the-as uint #f)) + (set! (-> gp-0 display-text-handle) (the-as handle #f)) ) (if (not (-> gp-0 current-continue)) (set-continue! gp-0 *default-continue*) diff --git a/test/decompiler/reference/engine/game/task/hint-control-h_REF.gc b/test/decompiler/reference/engine/game/task/hint-control-h_REF.gc index 72cd84ad50..e21a36cc68 100644 --- a/test/decompiler/reference/engine/game/task/hint-control-h_REF.gc +++ b/test/decompiler/reference/engine/game/task/hint-control-h_REF.gc @@ -41,8 +41,8 @@ ;; definition of type task-hint-control (deftype task-hint-control (structure) - ((task uint8 :offset-assert 0) - (delay uint64 :offset-assert 8) + ((task game-task :offset-assert 0) + (delay int64 :offset-assert 8) ) :method-count-assert 9 :size-assert #x10 diff --git a/test/decompiler/reference/engine/game/task/hint-control_REF.gc b/test/decompiler/reference/engine/game/task/hint-control_REF.gc index 68e7747173..e384875013 100644 --- a/test/decompiler/reference/engine/game/task/hint-control_REF.gc +++ b/test/decompiler/reference/engine/game/task/hint-control_REF.gc @@ -153,133 +153,205 @@ ;; failed to figure out what this is: (set! (-> *game-info* task-hint-control) - (the-as - (array task-hint-control-group) - (new - 'static - 'boxed-array - :type task-hint-control-group :length 16 :allocated-length 16 - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 3 :allocated-length 3 - (new 'static 'task-hint-control :task #x5c :delay #x2bf20) - (new 'static 'task-hint-control :task #x5d :delay #x57e40) - (new 'static 'task-hint-control :task #x5e :delay #x83d60) + (new + 'static + 'boxed-array + :type task-hint-control-group :length 16 :allocated-length 16 + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 3 :allocated-length 3 + (new 'static 'task-hint-control + :task (game-task training-gimmie) + :delay #x2bf20 + ) + (new 'static 'task-hint-control + :task (game-task training-door) + :delay #x57e40 + ) + (new 'static 'task-hint-control + :task (game-task training-climb) + :delay #x83d60 ) ) - (new 'static 'task-hint-control-group) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 3 :allocated-length 3 - (new 'static 'task-hint-control :task #x15 :delay #x41eb0) - (new 'static 'task-hint-control :task #x16 :delay #x83d60) - (new 'static 'task-hint-control :task #x13 :delay #xc5c10) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 2 :allocated-length 2 - (new 'static 'task-hint-control :task #x6 :delay #x57e40) - (new 'static 'task-hint-control :task #x8 :delay #xafc80) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 4 :allocated-length 4 - (new 'static 'task-hint-control :task #x18 :delay #x57e40) - (new 'static 'task-hint-control :task #x19 :delay #x83d60) - (new 'static 'task-hint-control :task #x1d :delay #xafc80) - (new 'static 'task-hint-control :task #x1e :delay #xdbba0) - ) - ) - (new 'static 'task-hint-control-group) - (new 'static 'task-hint-control-group) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 3 :allocated-length 3 - (new 'static 'task-hint-control :task #x33 :delay #x57e40) - (new 'static 'task-hint-control :task #x30 :delay #x83d60) - (new 'static 'task-hint-control :task #x2e :delay #xafc80) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 1 :allocated-length 1 - (new 'static 'task-hint-control :task #x26 :delay #xafc80) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 1 :allocated-length 1 - (new 'static 'task-hint-control :task #x38 :delay #xafc80) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 1 :allocated-length 1 - (new 'static 'task-hint-control :task #x6e :delay #x107ac0) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 1 :allocated-length 1 - (new 'static 'task-hint-control :task #x4a :delay #x107ac0) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 4 :allocated-length 4 - (new 'static 'task-hint-control :task #x42 :delay #x57e40) - (new 'static 'task-hint-control :task #x43 :delay #x83d60) - (new 'static 'task-hint-control :task #x3f :delay #xafc80) - (new 'static 'task-hint-control :task #x40 :delay #xdbba0) - ) - ) - (new 'static 'task-hint-control-group - :tasks - (new - 'static - 'boxed-array - :type task-hint-control :length 4 :allocated-length 4 - (new 'static 'task-hint-control :task #x50 :delay #x57e40) - (new 'static 'task-hint-control :task #x51 :delay #x83d60) - (new 'static 'task-hint-control :task #x52 :delay #xafc80) - (new 'static 'task-hint-control :task #x54 :delay #xdbba0) - ) - ) - (new 'static 'task-hint-control-group) - (new 'static 'task-hint-control-group) ) + (new 'static 'task-hint-control-group) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 3 :allocated-length 3 + (new 'static 'task-hint-control + :task (game-task beach-gimmie) + :delay #x41eb0 + ) + (new 'static 'task-hint-control + :task (game-task beach-sentinel) + :delay #x83d60 + ) + (new 'static 'task-hint-control + :task (game-task beach-cannon) + :delay #xc5c10 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 2 :allocated-length 2 + (new 'static 'task-hint-control + :task (game-task jungle-plant) + :delay #x57e40 + ) + (new 'static 'task-hint-control + :task (game-task jungle-canyon-end) + :delay #xafc80 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 4 :allocated-length 4 + (new 'static 'task-hint-control + :task (game-task misty-boat) + :delay #x57e40 + ) + (new 'static 'task-hint-control + :task (game-task misty-warehouse) + :delay #x83d60 + ) + (new 'static 'task-hint-control + :task (game-task misty-bike-jump) + :delay #xafc80 + ) + (new 'static 'task-hint-control + :task (game-task misty-eco-challenge) + :delay #xdbba0 + ) + ) + ) + (new 'static 'task-hint-control-group) + (new 'static 'task-hint-control-group) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 3 :allocated-length 3 + (new 'static 'task-hint-control + :task (game-task sunken-spinning-room) + :delay #x57e40 + ) + (new 'static 'task-hint-control + :task (game-task sunken-sharks) + :delay #x83d60 + ) + (new 'static 'task-hint-control + :task (game-task sunken-slide) + :delay #xafc80 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 1 :allocated-length 1 + (new 'static 'task-hint-control + :task (game-task swamp-battle) + :delay #xafc80 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 1 :allocated-length 1 + (new 'static 'task-hint-control + :task (game-task rolling-lake) + :delay #xafc80 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 1 :allocated-length 1 + (new 'static 'task-hint-control + :task (game-task ogre-secret) + :delay #x107ac0 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 1 :allocated-length 1 + (new 'static 'task-hint-control + :task (game-task village3-extra1) + :delay #x107ac0 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 4 :allocated-length 4 + (new 'static 'task-hint-control + :task (game-task snow-bumpers) + :delay #x57e40 + ) + (new 'static 'task-hint-control :task (game-task snow-cage) :delay #x83d60) + (new 'static 'task-hint-control :task (game-task snow-ball) :delay #xafc80) + (new 'static 'task-hint-control + :task (game-task snow-bunnies) + :delay #xdbba0 + ) + ) + ) + (new 'static 'task-hint-control-group + :tasks + (new + 'static + 'boxed-array + :type task-hint-control :length 4 :allocated-length 4 + (new 'static 'task-hint-control + :task (game-task cave-dark-climb) + :delay #x57e40 + ) + (new 'static 'task-hint-control + :task (game-task cave-robot-climb) + :delay #x83d60 + ) + (new 'static 'task-hint-control + :task (game-task cave-swing-poles) + :delay #xafc80 + ) + (new 'static 'task-hint-control + :task (game-task cave-platforms) + :delay #xdbba0 + ) + ) + ) + (new 'static 'task-hint-control-group) + (new 'static 'task-hint-control-group) ) ) @@ -337,7 +409,7 @@ ;; definition for function can-hint-be-played? ;; WARN: disable def twice: 139. This may happen when a cond (no else) is nested inside of another conditional, but it should be rare. -(defun can-hint-be-played? ((arg0 int)) +(defun can-hint-be-played? ((arg0 int) (arg1 entity) (arg2 string)) (let ((v1-0 (not (str-is-playing?)))) (if (and v1-0 (nonzero? arg0)) (set! v1-0 (not (seen-text? *game-info* (the-as game-text-id arg0)))) @@ -354,10 +426,7 @@ (and v1-0 (< - (- - (-> *display* base-frame-counter) - (the-as int (-> *game-info* hint-play-time)) - ) + (- (-> *display* base-frame-counter) (-> *game-info* hint-play-time)) 30 ) ) @@ -372,10 +441,7 @@ (not (-> *setting-control* current spooling)) (not (-> *setting-control* current hint)) (not (-> *setting-control* current ambient)) - (>= - (-> *display* base-frame-counter) - (the-as int (-> *game-info* blackout-time)) - ) + (>= (-> *display* base-frame-counter) (-> *game-info* blackout-time)) ) ) 0 @@ -485,11 +551,11 @@ (when (and (!= gp-0 0) (nonzero? (-> gp-0 length))) (let ((s5-0 (-> *game-info* in-level-time a0-3))) (dotimes (s4-0 (-> gp-0 length)) - (case (get-task-status (the-as game-task (-> gp-0 s4-0 task))) + (case (get-task-status (-> gp-0 s4-0 task)) (((task-status need-hint) (task-status unknown)) - (if (< (-> gp-0 s4-0 delay) s5-0) + (if (< (the-as uint (-> gp-0 s4-0 delay)) (the-as uint s5-0)) (close-specific-task! - (the-as game-task (-> gp-0 s4-0 task)) + (-> gp-0 s4-0 task) (task-status need-hint) ) ) diff --git a/test/decompiler/reference/engine/game/task/task-control-h_REF.gc b/test/decompiler/reference/engine/game/task/task-control-h_REF.gc index d76de4461d..7c21473b19 100644 --- a/test/decompiler/reference/engine/game/task/task-control-h_REF.gc +++ b/test/decompiler/reference/engine/game/task/task-control-h_REF.gc @@ -12,8 +12,8 @@ :size-assert #x18 :flag-assert #x1000000018 (:methods - (get-game-task (_type_) game-task 9) - (get-task-status (_type_) task-status 10) + (get-task (_type_) game-task 9) + (get-status (_type_) task-status 10) (task-available? (_type_ task-control) symbol 11) (closed? (_type_) symbol 12) (closed-by-default? (_type_) symbol 13) diff --git a/test/decompiler/reference/engine/game/task/task-control_REF.gc b/test/decompiler/reference/engine/game/task/task-control_REF.gc index c9c1d888c4..9fcc7680d1 100644 --- a/test/decompiler/reference/engine/game/task/task-control_REF.gc +++ b/test/decompiler/reference/engine/game/task/task-control_REF.gc @@ -35,12 +35,12 @@ ) ;; definition for method 9 of type task-cstage -(defmethod get-game-task task-cstage ((obj task-cstage)) +(defmethod get-task task-cstage ((obj task-cstage)) (-> obj game-task) ) ;; definition for method 10 of type task-cstage -(defmethod get-task-status task-cstage ((obj task-cstage)) +(defmethod get-status task-cstage ((obj task-cstage)) (-> obj status) ) diff --git a/test/decompiler/reference/engine/gfx/shadow/shadow_REF.gc b/test/decompiler/reference/engine/gfx/shadow/shadow_REF.gc index 2c1a505d2d..bcaa524faa 100644 --- a/test/decompiler/reference/engine/gfx/shadow/shadow_REF.gc +++ b/test/decompiler/reference/engine/gfx/shadow/shadow_REF.gc @@ -152,24 +152,32 @@ (set! (-> s2-0 quad) (-> arg0 quad)) (new 'stack-no-clear 'vector) (+! (-> s2-0 y) arg5) - (let ((s4-0 (new 'stack-no-clear 'bone))) + (let ((s4-0 (new 'stack-no-clear 'collide-tri-result))) (cond ((>= - (dummy-12 *collide-cache* s2-0 arg6 arg3 arg4 s4-0 (the-as uint 1)) + (fill-and-probe-using-y-probe + *collide-cache* + s2-0 + arg6 + arg3 + arg4 + s4-0 + (the-as uint 1) + ) 0.0 ) (if (!= arg2 0.0) (compute-and-draw-shadow s2-0 - (-> s4-0 transform vector 3) - (-> s4-0 scale) + (-> s4-0 intersect) + (-> s4-0 normal) (the-as vector arg2) arg6 (the-as float 0) ) ) - (if (and arg1 (!= (shr (shl (-> s4-0 cache bone-matrix) 52) 58) 3)) - (set! (-> arg1 quad) (-> s4-0 transform vector 3 quad)) + (if (and arg1 (!= (-> s4-0 pat material) 3)) + (set! (-> arg1 quad) (-> s4-0 intersect quad)) ) ) (else diff --git a/test/decompiler/reference/engine/target/target-part_REF.gc b/test/decompiler/reference/engine/target/target-part_REF.gc index faa1742e12..8abf960988 100644 --- a/test/decompiler/reference/engine/target/target-part_REF.gc +++ b/test/decompiler/reference/engine/target/target-part_REF.gc @@ -44,13 +44,13 @@ (init-vf0-vector) (let ((a1-1 (new 'stack-no-clear 'vector))) (set! (-> a1-1 quad) (-> arg2 launchrot quad)) - (let ((s3-0 (new 'stack-no-clear 'bone)) + (let ((s3-0 (new 'stack-no-clear 'collide-tri-result)) (s5-0 *target*) ) (set! (-> a1-1 y) (+ 4096.0 (-> a1-1 y))) (when (>= - (dummy-12 + (fill-and-probe-using-y-probe *collide-cache* a1-1 (the-as float 20480.0) @@ -64,11 +64,11 @@ (let ((s2-0 (new 'stack-no-clear 'vector)) (s4-1 (new 'stack-no-clear 'quaternion)) ) - (set! (-> s2-0 x) (-> s3-0 scale z)) + (set! (-> s2-0 x) (-> s3-0 normal z)) (set! (-> s2-0 y) 0.0) - (set! (-> s2-0 z) (- (-> s3-0 scale x))) + (set! (-> s2-0 z) (- (-> s3-0 normal x))) (vector-normalize! s2-0 (the-as float 1.0)) - (quaternion-vector-angle! s4-1 s2-0 (acos (-> s3-0 scale y))) + (quaternion-vector-angle! s4-1 s2-0 (acos (-> s3-0 normal y))) (let ((s3-1 (new 'stack-no-clear 'quaternion))) (quaternion-vector-angle! s3-1 diff --git a/test/decompiler/reference/levels/beach/beach-rocks_REF.gc b/test/decompiler/reference/levels/beach/beach-rocks_REF.gc index b96ef6c5af..f643977a1e 100644 --- a/test/decompiler/reference/levels/beach/beach-rocks_REF.gc +++ b/test/decompiler/reference/levels/beach/beach-rocks_REF.gc @@ -1427,9 +1427,9 @@ (level-hint-spawn (game-text-id beach-seagulls-avalanche) "sksp0025" - #f + (the-as entity #f) *entity-pool* - 0 + (game-task none) ) (let ((v1-2 (-> self skel root-channel 0))) (set! diff --git a/test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc b/test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc index 6fe2cd681e..a6c082e8f1 100644 --- a/test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc +++ b/test/decompiler/reference/levels/beach/lurkerpuppy_REF.gc @@ -603,7 +603,7 @@ nav-enemy-default-event-handler ;; definition for method 47 of type lurkerpuppy ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-47 lurkerpuppy ((obj lurkerpuppy)) +(defmethod initialize-collision lurkerpuppy ((obj lurkerpuppy)) (let ((s5-0 (new @@ -646,7 +646,3 @@ nav-enemy-default-event-handler 0 (none) ) - - - - diff --git a/test/decompiler/reference/levels/common/baseplat_REF.gc b/test/decompiler/reference/levels/common/baseplat_REF.gc index be23114ebb..3f1e843ad6 100644 --- a/test/decompiler/reference/levels/common/baseplat_REF.gc +++ b/test/decompiler/reference/levels/common/baseplat_REF.gc @@ -282,9 +282,9 @@ eco-door-event-handler (level-hint-spawn (game-text-id zero) (the-as string #f) - (the-as symbol (-> self entity)) + (-> self entity) *entity-pool* - 0 + (game-task none) ) ) (suspend) @@ -573,7 +573,3 @@ eco-door-event-handler ) (none) ) - - - - diff --git a/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc b/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc index 4f1aee3949..795db75ad8 100644 --- a/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc +++ b/test/decompiler/reference/levels/common/nav-enemy-h_REF.gc @@ -190,7 +190,7 @@ (nav-enemy-jump-to-point () _type_ :state 36) (TODO-RENAME-37 (_type_) none 37) (TODO-RENAME-38 (_type_) none 38) - (TODO-RENAME-39 (_type_) none 39) + (common-post (_type_) none 39) (dummy-40 (_type_) none 40) (dummy-41 (_type_) none 41) (TODO-RENAME-42 (_type_) int 42) @@ -198,7 +198,7 @@ (dummy-44 (_type_ process event-message-block) object 44) (TODO-RENAME-45 (_type_ nav-enemy-info) none 45) (TODO-RENAME-46 (_type_ float) basic 46) - (TODO-RENAME-47 (_type_) none 47) + (initialize-collision (_type_) none 47) (TODO-RENAME-48 (_type_) none 48) (TODO-RENAME-49 (_type_ nav-enemy-info) float 49) (TODO-RENAME-50 (_type_ vector) symbol 50) diff --git a/test/decompiler/reference/levels/common/nav-enemy_REF.gc b/test/decompiler/reference/levels/common/nav-enemy_REF.gc index 823901459a..12da9848e5 100644 --- a/test/decompiler/reference/levels/common/nav-enemy_REF.gc +++ b/test/decompiler/reference/levels/common/nav-enemy_REF.gc @@ -101,7 +101,7 @@ ;; definition for method 39 of type nav-enemy ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-39 nav-enemy ((obj nav-enemy)) +(defmethod common-post nav-enemy ((obj nav-enemy)) (when (and (logtest? (-> obj nav-enemy-flags) 256) @@ -355,7 +355,7 @@ nav-enemy-default-event-handler ;; definition for function nav-enemy-common-post (defbehavior nav-enemy-common-post nav-enemy () - (TODO-RENAME-39 self) + (common-post self) (none) ) @@ -3204,7 +3204,7 @@ nav-enemy-default-event-handler (defbehavior nav-enemy-init-by-other nav-enemy ((arg0 nav-enemy) (arg1 vector) (arg2 vector)) - (TODO-RENAME-47 self) + (initialize-collision self) (logior! (-> self mask) (process-mask actor-pause)) (set! (-> self collide-info trans quad) (-> arg1 quad)) (set! (-> self event-param-point quad) (-> arg2 quad)) @@ -3224,7 +3224,7 @@ nav-enemy-default-event-handler ;; definition for method 47 of type nav-enemy ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-47 nav-enemy ((obj nav-enemy)) +(defmethod initialize-collision nav-enemy ((obj nav-enemy)) 0 (none) ) @@ -3247,7 +3247,7 @@ nav-enemy-default-event-handler ;; definition for method 11 of type nav-enemy ;; INFO: Return type mismatch int vs none. (defmethod copy-defaults! nav-enemy ((obj nav-enemy) (arg0 res-lump)) - (TODO-RENAME-47 obj) + (initialize-collision obj) (process-drawable-from-entity! obj arg0) (TODO-RENAME-48 obj) (TODO-RENAME-59 obj) diff --git a/test/decompiler/reference/levels/common/sharkey_REF.gc b/test/decompiler/reference/levels/common/sharkey_REF.gc index de522baa00..7016462c80 100644 --- a/test/decompiler/reference/levels/common/sharkey_REF.gc +++ b/test/decompiler/reference/levels/common/sharkey_REF.gc @@ -302,7 +302,7 @@ nav-enemy-default-event-handler ;; definition for method 39 of type sharkey ;; INFO: Return type mismatch int vs none. ;; Used lq/sq -(defmethod TODO-RENAME-39 sharkey ((obj sharkey)) +(defmethod common-post sharkey ((obj sharkey)) (let ((f30-0 (-> obj water height)) (s5-0 (new 'stack-no-clear 'vector)) ) @@ -1378,7 +1378,3 @@ nav-enemy-default-event-handler (go (method-of-object obj nav-enemy-idle)) (none) ) - - - - diff --git a/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc b/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc index 3c67082004..5f9174788c 100644 --- a/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc +++ b/test/decompiler/reference/levels/firecanyon/assistant-firecanyon_REF.gc @@ -151,28 +151,30 @@ #f ) ) - (and - (not - (closed? - (-> self tasks) - (game-task firecanyon-assistant) - (task-status need-reward-speech) + (let ((a0-1 (-> self tasks))) + (and + (not + (closed? + a0-1 + (game-task firecanyon-assistant) + (task-status need-reward-speech) + ) ) - ) - (not (movie?)) - (not (level-hint-displayed?)) - (not - (and - *cheat-mode* - (logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3)) + (not (movie?)) + (not (level-hint-displayed? (the-as symbol a0-1))) + (not + (and + *cheat-mode* + (logtest? (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons l3)) + ) ) - ) - (< - (- - (-> *display* base-frame-counter) - (the-as int (-> self state-time)) + (< + (- + (-> *display* base-frame-counter) + (the-as int (-> self state-time)) + ) + 3000 ) - 3000 ) ) ) @@ -225,9 +227,9 @@ (level-hint-spawn (game-text-id firecanyon-not-enough-cells) "asstvb09" - #f + (the-as entity #f) *entity-pool* - 0 + (game-task none) ) ) (none) @@ -871,7 +873,3 @@ (dummy-42 obj) (none) ) - - - - diff --git a/test/decompiler/reference/levels/jungle/hopper_REF.gc b/test/decompiler/reference/levels/jungle/hopper_REF.gc index f892280062..1907da47d0 100644 --- a/test/decompiler/reference/levels/jungle/hopper_REF.gc +++ b/test/decompiler/reference/levels/jungle/hopper_REF.gc @@ -51,7 +51,7 @@ nav-enemy-default-event-handler ;; definition for method 39 of type hopper ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-39 hopper ((obj hopper)) +(defmethod common-post hopper ((obj hopper)) (let ((v1-1 (-> obj draw shadow-ctrl))) (set! (-> v1-1 settings bot-plane w) @@ -69,14 +69,14 @@ nav-enemy-default-event-handler ;; Used lq/sq (defbehavior hopper-find-ground hopper ((arg0 vector)) (let ((s5-0 (new 'stack-no-clear 'vector))) - (let ((t1-0 (new 'stack-no-clear 'bone)) + (let ((t1-0 (new 'stack-no-clear 'collide-tri-result)) (f30-0 61440.0) ) (set! (-> s5-0 quad) (-> arg0 quad)) (set! (-> s5-0 y) (+ 20480.0 (-> s5-0 y))) (let ((f0-2 - (dummy-12 + (fill-and-probe-using-y-probe *collide-cache* s5-0 f30-0 @@ -686,7 +686,7 @@ nav-enemy-default-event-handler ;; definition for method 47 of type hopper ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-47 hopper ((obj hopper)) +(defmethod initialize-collision hopper ((obj hopper)) (let ((s5-0 (new @@ -744,7 +744,3 @@ nav-enemy-default-event-handler 0 (none) ) - - - - diff --git a/test/decompiler/reference/levels/jungle/junglefish_REF.gc b/test/decompiler/reference/levels/jungle/junglefish_REF.gc index 1bda779a12..dbce115e7b 100644 --- a/test/decompiler/reference/levels/jungle/junglefish_REF.gc +++ b/test/decompiler/reference/levels/jungle/junglefish_REF.gc @@ -46,7 +46,7 @@ nav-enemy-default-event-handler ;; definition for method 39 of type junglefish ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-39 junglefish ((obj junglefish)) +(defmethod common-post junglefish ((obj junglefish)) (dummy-10 (-> obj water)) ((the-as (function nav-enemy none) (find-parent-method junglefish 39)) obj) 0 diff --git a/test/decompiler/reference/levels/jungleb/aphid_REF.gc b/test/decompiler/reference/levels/jungleb/aphid_REF.gc index 5f635abf2d..d313e74ef9 100644 --- a/test/decompiler/reference/levels/jungleb/aphid_REF.gc +++ b/test/decompiler/reference/levels/jungleb/aphid_REF.gc @@ -611,7 +611,7 @@ ;; definition for method 47 of type aphid ;; INFO: Return type mismatch int vs none. -(defmethod TODO-RENAME-47 aphid ((obj aphid)) +(defmethod initialize-collision aphid ((obj aphid)) (let ((s5-0 (new @@ -659,7 +659,7 @@ (defbehavior aphid-init-by-other aphid ((arg0 nav-enemy) (arg1 vector) (arg2 vector)) - (TODO-RENAME-47 self) + (initialize-collision self) (logior! (-> self mask) (process-mask actor-pause)) (set! (-> self collide-info trans quad) (-> arg1 quad)) (set! (-> self event-param-point quad) (-> arg2 quad)) @@ -684,7 +684,3 @@ (go-virtual nav-enemy-chase) (none) ) - - - - diff --git a/test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc b/test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc index 2639398e08..b943459b38 100644 --- a/test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc +++ b/test/decompiler/reference/levels/misty/misty-teetertotter_REF.gc @@ -95,9 +95,9 @@ (level-hint-spawn (game-text-id misty-teetertotter-bonk-dax-tutorial) "sksp0070" - #f + (the-as entity #f) *entity-pool* - 0 + (game-task none) ) (go teetertotter-bend) ) diff --git a/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc b/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc new file mode 100644 index 0000000000..2365dc5f06 --- /dev/null +++ b/test/decompiler/reference/levels/ogre/flying-lurker_REF.gc @@ -0,0 +1,2061 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(let + ((v1-0 + (new 'static 'skeleton-group + :art-group-name "ogrecam" + :bounds + (new 'static 'vector :y 8192.0 :w 24576.0) + :version #x6 + ) + ) + ) + (set! (-> v1-0 jgeo) 0) + (set! (-> v1-0 janim) -1) + (set! (-> v1-0 mgeo 0) (the-as uint 1)) + (set! (-> v1-0 lod-dist 0) 4095996000.0) + (set! *ogrecam-sg* v1-0) + ) + +;; definition of type plunger-lurker +(deftype plunger-lurker (process-drawable) + ((alt-actor entity-actor :offset-assert 176) + (got-hit symbol :offset-assert 180) + ) + :heap-base #x50 + :method-count-assert 20 + :size-assert #xb8 + :flag-assert #x14005000b8 + ) + +;; definition for method 3 of type plunger-lurker +(defmethod inspect plunger-lurker ((obj plunger-lurker)) + (let ((t9-0 (method-of-type process-drawable inspect))) + (t9-0 obj) + ) + (format #t "~T~Talt-actor: ~A~%" (-> obj alt-actor)) + (format #t "~T~Tgot-hit: ~A~%" (-> obj got-hit)) + obj + ) + +;; failed to figure out what this is: +(let + ((v1-2 + (new 'static 'skeleton-group + :art-group-name "plunger-lurker" + :bounds + (new 'static 'vector :x 8192.0 :y 16384.0 :w 49152.0) + :max-lod 2 + :version #x6 + ) + ) + ) + (set! (-> v1-2 jgeo) 0) + (set! (-> v1-2 janim) 4) + (set! (-> v1-2 mgeo 0) (the-as uint 1)) + (set! (-> v1-2 lod-dist 0) 81920.0) + (set! (-> v1-2 mgeo 1) (the-as uint 2)) + (set! (-> v1-2 lod-dist 1) 163840.0) + (set! (-> v1-2 mgeo 2) (the-as uint 3)) + (set! (-> v1-2 lod-dist 2) 4095996000.0) + (set! *plunger-lurker-sg* v1-2) + ) + +;; failed to figure out what this is: +(defstate plunger-lurker-plunge (plunger-lurker) + :code + (behavior () + (set-setting! *setting-control* self 'allow-progress #f 0.0 0) + (logclear! (-> self mask) (process-mask actor-pause)) + (process-entity-status! self (entity-perm-status bit-3) #t) + (while (or (not *target*) (logtest? (-> *target* state-flags) #x8008)) + (suspend) + ) + (while (not (process-grab? *target*)) + (suspend) + ) + (let* ((gp-0 (get-process *default-dead-pool* manipy #x4000)) + (gp-1 (ppointer->handle (when gp-0 + (let + ((t9-4 (method-of-type manipy activate))) + (t9-4 + (the-as manipy gp-0) + self + 'manipy + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + gp-0 + manipy-init + (-> self entity extra trans) + (-> self entity) + *ogrecam-sg* + #f + ) + (-> gp-0 ppointer) + ) + ) + ) + ) + (let + ((s5-0 (the-as othercam (get-process *default-dead-pool* othercam #x4000))) + ) + (ppointer->handle (when s5-0 + (let ((t9-7 (method-of-type othercam activate))) + (t9-7 + s5-0 + (-> gp-1 process 0) + 'othercam + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s5-0 + othercam-init-by-other + (-> gp-1 process 0) + 4 + #f + #t + ) + (-> s5-0 ppointer) + ) + ) + ) + (let ((a1-8 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-8 from) self) + (set! (-> a1-8 num-params) 1) + (set! (-> a1-8 message) 'eval) + (set! + (-> a1-8 param 0) + (the-as + uint + (lambda :behavior manipy + () + (let ((v0-0 (logior (-> self draw status) 32))) + (set! (-> self draw status) v0-0) + v0-0 + ) + ) + ) + ) + (send-event-function (handle->process gp-1) a1-8) + ) + (let ((a1-9 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-9 from) self) + (set! (-> a1-9 num-params) 1) + (set! (-> a1-9 message) 'clone-and-kill-links) + (set! (-> a1-9 param 0) (the-as uint (process->handle self))) + (let ((t9-10 send-event-function) + (v1-34 (-> self alt-actor)) + ) + (t9-10 (if v1-34 + (-> v1-34 extra process) + ) + a1-9 + ) + ) + ) + (let ((a1-10 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-10 from) self) + (set! (-> a1-10 num-params) 1) + (set! (-> a1-10 message) 'clone-copy-trans) + (set! (-> a1-10 param 0) (the-as uint #f)) + (send-event-function (-> gp-1 process 0) a1-10) + ) + (let ((a1-11 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-11 from) self) + (set! (-> a1-11 num-params) 1) + (set! (-> a1-11 message) 'anim-mode) + (set! (-> a1-11 param 0) (the-as uint 'clone-anim)) + (send-event-function (-> gp-1 process 0) a1-11) + ) + (ja-play-spooled-anim + (new 'static 'spool-anim + :name "plunger-lurker-blowup" + :index 7 + :parts 4 + :command-list + '( + ((the binteger 200) + alive + "tntbarrel-223" + ) + ((the binteger 200) + alive + "tntbarrel-222" + ) + ((the binteger 200) + alive + "tntbarrel-221" + ) + ((the binteger 200) + alive + "tntbarrel-220" + ) + ((the binteger 200) + alive + "tntbarrel-224" + ) + ((the binteger 200) + alive + "tntbarrel-219" + ) + ((the binteger 200) + alive + "tntbarrel-246" + ) + ((the binteger 200) + alive + "tntbarrel-249" + ) + ((the binteger 200) + alive + "tntbarrel-250" + ) + ((the binteger 200) + alive + "tntbarrel-251" + ) + ((the binteger 200) + alive + "tntbarrel-225" + ) + ((the binteger 201) + joint + "cameraB" + ) + ((the binteger 220) + send-event + "tntbarrel-223" + 'die-big + ) + ((the binteger 230) + send-event + "tntbarrel-222" + 'die-big + ) + ((the binteger 240) + send-event + "tntbarrel-221" + 'die-big + ) + ((the binteger 240) + send-event + "tntbarrel-220" + 'die-big + ) + ((the binteger 245) + send-event + "tntbarrel-224" + 'die-big + ) + ((the binteger 250) + send-event + "tntbarrel-219" + 'die-big + ) + ((the binteger 251) + joint + "cameraA" + ) + ((the binteger 260) + send-event + "tntbarrel-246" + 'die-big + ) + ((the binteger 325) + send-event + "tntbarrel-249" + 'die-big + ) + ((the binteger 380) + send-event + "tntbarrel-250" + 'die-big + ) + ((the binteger 410) + send-event + "tntbarrel-251" + 'die-big + ) + ((the binteger 420) + blackout + (the binteger 30) + ) + ((the binteger 421) + joint + "cameraB" + ) + ((the binteger 430) send-event "tntbarrel-225" 'die-big) + ) + ) + (the-as art-joint-anim #f) + (the-as art-joint-anim (-> self draw art-group data 4)) + (the-as (function process-drawable symbol) false-func) + ) + (if (handle->process gp-1) + (deactivate (-> gp-1 process 0)) + ) + ) + (let ((a1-14 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-14 from) self) + (set! (-> a1-14 num-params) 0) + (set! (-> a1-14 message) 'reset) + (let ((t9-15 send-event-function) + (v1-56 (-> self alt-actor)) + ) + (t9-15 (if v1-56 + (-> v1-56 extra process) + ) + a1-14 + ) + ) + ) + (process-release? *target*) + (suspend) + 0 + (let ((a1-15 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-15 from) self) + (set! (-> a1-15 num-params) 2) + (set! (-> a1-15 message) 'attack-invinc) + (set! (-> a1-15 param 0) (the-as uint #f)) + (let + ((a0-37 + (new 'static 'array uint32 26 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x20 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + ) + (set! (-> a0-37 17) (the-as uint 'instant-death)) + (set! (-> a1-15 param 1) (the-as uint a0-37)) + ) + (send-event-function *target* a1-15) + ) + (dummy-18 self) + (deactivate self) + (while #t + (suspend) + ) + (none) + ) + :post + (the-as (function none :behavior plunger-lurker) ja-post) + ) + +;; failed to figure out what this is: +(defstate plunger-lurker-flee (plunger-lurker) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (when (= v1-0 'attack) + (let ((v0-0 #t)) + (set! (-> self got-hit) v0-0) + v0-0 + ) + ) + ) + ) + ) + :trans + (behavior () + (when (-> self got-hit) + (close-specific-task! + (game-task plunger-lurker-hit) + (task-status need-hint) + ) + (process-entity-status! self (entity-perm-status complete) #t) + (level-hint-spawn + (game-text-id sidekick-speech-hint-ogre-race) + "sksp0321" + (the-as entity #f) + *entity-pool* + (game-task none) + ) + (let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000))) + (when gp-0 + (let ((t9-4 (method-of-type part-tracker activate))) + (t9-4 + (the-as part-tracker gp-0) + *entity-pool* + 'part-tracker + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + gp-0 + part-tracker-init + (-> *part-group-id-table* 474) + -1 + #f + #f + #f + (-> self root trans) + ) + (-> gp-0 ppointer) + ) + ) + (dummy-18 self) + (deactivate self) + ) + (none) + ) + :code + (behavior () + (let ((a0-0 (-> self skel root-channel 0))) + (set! + (-> a0-0 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + (set! + (-> a0-0 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 5)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-0 param 1) 1.0) + (set! (-> a0-0 frame-num) 0.0) + (joint-control-channel-group! + a0-0 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-1 (-> self skel root-channel 0))) + (set! + (-> a0-1 param 0) + (the float (+ (-> a0-1 frame-group data 0 length) -1)) + ) + (set! (-> a0-1 param 1) 1.0) + (joint-control-channel-group-eval! + a0-1 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (let ((a0-3 (-> self skel root-channel 0))) + (set! + (-> a0-3 frame-group) + (the-as art-joint-anim (-> self draw art-group data 6)) + ) + (set! + (-> a0-3 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 6)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-3 param 1) 1.0) + (set! (-> a0-3 frame-num) 0.0) + (joint-control-channel-group! + a0-3 + (the-as art-joint-anim (-> self draw art-group data 6)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-4 (-> self skel root-channel 0))) + (set! + (-> a0-4 param 0) + (the float (+ (-> a0-4 frame-group data 0 length) -1)) + ) + (set! (-> a0-4 param 1) 1.0) + (joint-control-channel-group-eval! + a0-4 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (while #t + (suspend) + ) + (none) + ) + :post + (the-as (function none :behavior plunger-lurker) ja-post) + ) + +;; failed to figure out what this is: +(defstate plunger-lurker-idle (plunger-lurker) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (when (= v1-0 'plunge) + (logclear! (-> self mask) (process-mask actor-pause)) + (go plunger-lurker-plunge) + ) + ) + ) + ) + :trans + (behavior () + (spool-push *art-control* "plunger-lurker-blowup" 0 self -99.0) + (when + (and + *target* + (< + (vector-vector-distance-squared (-> self root trans) (target-pos 0)) + 6710886400.0 + ) + ) + (logclear! (-> self mask) (process-mask actor-pause)) + (go plunger-lurker-flee) + ) + (none) + ) + :code + (behavior () + (while #t + (let ((a0-0 (-> self skel root-channel 0))) + (set! + (-> a0-0 frame-group) + (the-as art-joint-anim (-> self draw art-group data 4)) + ) + (set! + (-> a0-0 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 4)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-0 param 1) 1.0) + (set! (-> a0-0 frame-num) 0.0) + (joint-control-channel-group! + a0-0 + (the-as art-joint-anim (-> self draw art-group data 4)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-1 (-> self skel root-channel 0))) + (set! + (-> a0-1 param 0) + (the float (+ (-> a0-1 frame-group data 0 length) -1)) + ) + (set! (-> a0-1 param 1) 1.0) + (joint-control-channel-group-eval! + a0-1 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + ) + (none) + ) + :post + (the-as (function none :behavior plunger-lurker) ja-post) + ) + +;; failed to figure out what this is: +(defstate plunger-lurker-die (plunger-lurker) + :code + (behavior () + (dummy-18 self) + (deactivate self) + (suspend) + 0 + (none) + ) + ) + +;; definition for method 11 of type plunger-lurker +(defmethod copy-defaults! plunger-lurker ((obj plunger-lurker) (arg0 res-lump)) + (stack-size-set! (-> obj main-thread) 512) + (let + ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) + (let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0)))) + (set! (-> s3-0 prim-core collide-as) (the-as uint 512)) + (set! (-> s3-0 collide-with) (the-as uint 16)) + (set! (-> s3-0 prim-core action) (the-as uint 1)) + (set! (-> s3-0 prim-core offense) 4) + (set! (-> s3-0 transform-index) 0) + (set-vector! (-> s3-0 local-sphere) 0.0 20480.0 -16384.0 40960.0) + ) + (dummy-46 s4-0) + (set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w))) + (dummy-50 s4-0) + (set! (-> obj root) s4-0) + ) + (process-drawable-from-entity! obj arg0) + (dummy-14 obj *plunger-lurker-sg* '()) + (set! (-> obj alt-actor) (entity-actor-lookup arg0 'alt-actor 0)) + (set! (-> obj got-hit) #f) + (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) -16384.0) + (if (= (get-task-status (game-task plunger-lurker-hit)) (task-status invalid)) + (go plunger-lurker-die) + (go plunger-lurker-idle) + ) + (none) + ) + +;; definition of type flying-lurker +(deftype flying-lurker (process-drawable) + ((curve-position float :offset-assert 176) + (speed float :offset-assert 180) + (tangent vector :inline :offset-assert 192) + (anim-blend float :offset-assert 208) + (y-offset float :offset-assert 212) + (y-offset-desired float :offset-assert 216) + (y-vel float :offset-assert 220) + (last-look-time int64 :offset-assert 224) + (time-to-next-look int64 :offset-assert 232) + (take-off symbol :offset-assert 240) + (race-seconds float :offset-assert 244) + (race-start-time int64 :offset-assert 248) + (rank int32 :offset-assert 256) + (alt-actor entity-actor :offset-assert 260) + (alt-trans vector :offset-assert 264) + (shadow-backup shadow-geo :offset-assert 268) + (try-count uint8 :offset-assert 272) + (try-counted symbol :offset-assert 276) + (default-bounds vector :inline :offset-assert 288) + ) + :heap-base #xc0 + :method-count-assert 21 + :size-assert #x130 + :flag-assert #x1500c00130 + (:methods + (dummy-20 (_type_) none 20) + ) + ) + +;; definition for method 3 of type flying-lurker +(defmethod inspect flying-lurker ((obj flying-lurker)) + (let ((t9-0 (method-of-type process-drawable inspect))) + (t9-0 obj) + ) + (format #t "~T~Tcurve-position: ~f~%" (-> obj curve-position)) + (format #t "~T~Tspeed: ~f~%" (-> obj speed)) + (format #t "~T~Ttangent: #~%" (-> obj tangent)) + (format #t "~T~Tanim-blend: ~f~%" (-> obj anim-blend)) + (format #t "~T~Ty-offset: ~f~%" (-> obj y-offset)) + (format #t "~T~Ty-offset-desired: ~f~%" (-> obj y-offset-desired)) + (format #t "~T~Ty-vel: ~f~%" (-> obj y-vel)) + (format #t "~T~Tlast-look-time: ~D~%" (-> obj last-look-time)) + (format #t "~T~Ttime-to-next-look: ~D~%" (-> obj time-to-next-look)) + (format #t "~T~Ttake-off: ~A~%" (-> obj take-off)) + (format #t "~T~Trace-seconds: ~f~%" (-> obj race-seconds)) + (format #t "~T~Trace-start-time: ~D~%" (-> obj race-start-time)) + (format #t "~T~Trank: ~D~%" (-> obj rank)) + (format #t "~T~Talt-actor: ~A~%" (-> obj alt-actor)) + (format #t "~T~Talt-trans: #~%" (-> obj alt-trans)) + (format #t "~T~Tshadow-backup: ~A~%" (-> obj shadow-backup)) + (format #t "~T~Ttry-count: ~D~%" (-> obj try-count)) + (format #t "~T~Ttry-counted: ~A~%" (-> obj try-counted)) + (format #t "~T~Tdefault-bounds: #~%" (-> obj default-bounds)) + obj + ) + +;; failed to figure out what this is: +(let + ((v1-8 + (new 'static 'skeleton-group + :art-group-name "flying-lurker" + :bounds + (new 'static 'vector :y 8192.0 :w 24576.0) + :max-lod 2 + :longest-edge (meters 2.3) + :version #x6 + :shadow 4 + ) + ) + ) + (set! (-> v1-8 jgeo) 0) + (set! (-> v1-8 janim) 5) + (set! (-> v1-8 mgeo 0) (the-as uint 1)) + (set! (-> v1-8 lod-dist 0) 81920.0) + (set! (-> v1-8 mgeo 1) (the-as uint 2)) + (set! (-> v1-8 lod-dist 1) 163840.0) + (set! (-> v1-8 mgeo 2) (the-as uint 3)) + (set! (-> v1-8 lod-dist 2) 4095996000.0) + (set! *flying-lurker-sg* v1-8) + ) + +;; definition for method 20 of type flying-lurker +;; INFO: Return type mismatch int vs none. +;; Used lq/sq +(defmethod dummy-20 flying-lurker ((obj flying-lurker)) + (with-pp + (let ((s5-0 (-> obj draw shadow-ctrl)) + (s4-0 #f) + ) + (when (-> obj draw shadow) + (when + (or + (logtest? (-> obj draw status) 8) + (< + (vector-vector-xz-distance-squared (-> obj root trans) (camera-pos)) + 10485760000.0 + ) + ) + (let ((s3-1 (new 'stack-no-clear 'collide-mesh-cache-tri)) + (a1-1 (new 'stack-no-clear 'vector)) + (a2-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-1 quad) (-> obj root trans quad)) + (set! (-> a1-1 y) (+ -8192.0 (-> a1-1 y))) + (set-vector! a2-0 0.0 -81920.0 0.0 1.0) + (when (>= (dummy-10 *collide-cache* a1-1 a2-0 8192.0 1 pp s3-1 1) 0.0) + (set! (-> s3-1 normal w) 8192.0) + (when + (and + (sphere-in-view-frustum? (-> s3-1 normal)) + (< + 822083600.0 + (vector-vector-distance-squared (-> s3-1 normal) (camera-pos)) + ) + ) + (set! s4-0 #t) + (let ((v1-17 s5-0)) + (set! + (-> v1-17 settings flags) + (logand -33 (-> v1-17 settings flags)) + ) + ) + 0 + (let ((v1-19 s5-0)) + (set! + (-> v1-19 settings bot-plane w) + (- (+ -8192.0 (-> s3-1 normal y))) + ) + ) + 0 + (let ((v1-21 s5-0)) + (set! + (-> v1-21 settings top-plane w) + (- (+ 6144.0 (-> s3-1 normal y))) + ) + ) + 0 + (let ((s2-2 (new 'stack-no-clear 'bounding-box))) + (let ((s1-1 (new 'stack-no-clear 'vector))) + (vector<-cspace! s1-1 (-> obj node-list data 4)) + (vector+float! (-> s2-2 min) s1-1 -18432.0) + (vector+float! (-> s2-2 max) s1-1 18432.0) + ) + (add-spheres! s2-2 (the-as (pointer sphere) (-> s3-1 normal)) 1) + (let + ((f0-17 (* 0.5 (vector-vector-distance (-> s2-2 min) (-> s2-2 max)))) + ) + (set-vector! + (-> obj draw bounds) + (* 0.5 (+ (-> s2-2 min x) (-> s2-2 max x))) + (* 0.5 (+ (-> s2-2 min y) (-> s2-2 max y))) + (* 0.5 (+ (-> s2-2 min z) (-> s2-2 max z))) + 1.0 + ) + (vector-! + (-> obj draw bounds) + (-> obj draw bounds) + (-> obj root trans) + ) + (set! (-> obj draw bounds w) f0-17) + ) + ) + (set! (-> obj draw origin-joint-index) (the-as uint 0)) + 0 + ) + ) + ) + ) + ) + (when (not s4-0) + (logior! (-> s5-0 settings flags) 32) + 0 + (set! (-> obj draw bounds quad) (-> obj default-bounds quad)) + (set! (-> obj draw origin-joint-index) (the-as uint 4)) + ) + ) + (none) + ) + ) + +;; definition for function flying-lurker-inc-try-count +;; INFO: Return type mismatch int vs none. +(defbehavior flying-lurker-inc-try-count flying-lurker () + (when (not (-> self try-counted)) + (set! (-> self try-counted) #t) + (let ((gp-0 (-> self entity extra perm))) + (logior! (-> gp-0 status) (entity-perm-status user-set-from-cstage)) + (set! (-> gp-0 user-int8 0) (seekl (-> gp-0 user-int8 0) 255 1)) + (set! (-> self try-count) (the-as uint (-> gp-0 user-int8 0))) + ) + ) + 0 + (none) + ) + +;; definition for function play-movie? +(defun play-movie? () + (= (get-task-status (game-task plunger-lurker-hit)) (task-status unknown)) + ) + +;; failed to figure out what this is: +(defstate flying-lurker-die (flying-lurker) + :code + (behavior () + (dummy-18 self) + (deactivate self) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate flying-lurker-sleep (flying-lurker) + :code + (behavior () + (process-entity-status! self (entity-perm-status bit-3) #f) + (logior! (-> self draw status) 2) + (while #t + (suspend) + ) + (none) + ) + ) + +;; definition for function first? +(defbehavior first? flying-lurker () + (not (-> self link prev)) + ) + +;; definition for function flying-lurker-calc-speed +;; INFO: Return type mismatch float vs none. +;; Used lq/sq +(defbehavior + flying-lurker-calc-speed flying-lurker + ((arg0 meters) (arg1 meters) (arg2 meters) (arg3 meters)) + (let + ((s4-1 + (vector-! + (new 'stack-no-clear 'vector) + (target-pos 0) + (-> self root trans) + ) + ) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s3-0 quad) (-> self tangent quad)) + 0.0 + (let ((f30-0 (vector-length s4-1))) + (set! (-> s4-1 y) 0.0) + (set! (-> s3-0 y) 0.0) + (let ((f28-0 (vector-dot s4-1 s3-0))) + (let + ((f26-0 + (* + (path-distance (-> self path)) + (/ + (the + float + (- (-> *display* game-frame-counter) (-> self race-start-time)) + ) + (-> self race-seconds) + ) + ) + ) + (f0-6 (* (path-distance (-> self path)) (-> self curve-position))) + ) + 0.0 + (let* ((f1-6 (* -81920.0 (the float (-> self rank)))) + (f0-10 (+ (if (< f26-0 f0-6) + (fmax (+ -81920.0 f1-6) (- f26-0 f0-6)) + (fmin (+ 245760.0 f1-6) (- f26-0 f0-6)) + ) + f28-0 + ) + ) + (f1-10 (* 0.000012207031 f0-10)) + (f0-12 (fmax -0.5 (fmin 0.5 f1-10))) + ) + (set! (-> self speed) (+ (* (+ 0.5 f0-12) (- arg2 arg3)) arg3)) + ) + ) + (set! + (-> self y-offset-desired) + (fmin 65536.0 (fmax 0.0 (* 1.6 (- 40960.0 (fmin (- f28-0) f30-0))))) + ) + ) + ) + ) + (none) + ) + +;; definition for function flying-lurker-move +;; INFO: Return type mismatch float vs none. +(defbehavior flying-lurker-move flying-lurker () + (+! + (-> self curve-position) + (/ + (the + float + (* + (- + (-> *display* base-frame-counter) + (-> *display* old-base-frame-counter) + ) + (the int (-> self speed)) + ) + ) + (path-distance (-> self path)) + ) + ) + (set! (-> self curve-position) (fmin 1.0 (fmax 0.0 (-> self curve-position)))) + (eval-path-curve! + (-> self path) + (-> self root trans) + (-> self curve-position) + 'interp + ) + (cond + ((< (-> self y-offset-desired) (-> self y-offset)) + (set! + (-> self y-vel) + (* 0.25 (- (-> self y-offset-desired) (-> self y-offset))) + ) + (set! (-> self y-vel) (fmax -436.90668 (-> self y-vel))) + (+! (-> self y-offset) (-> self y-vel)) + (when (>= (-> self y-offset-desired) (-> self y-offset)) + (set! (-> self y-offset) (-> self y-offset-desired)) + (set! (-> self y-vel) 0.0) + ) + ) + ((< (-> self y-offset) (-> self y-offset-desired)) + (set! + (-> self y-vel) + (* 0.5 (- (-> self y-offset-desired) (-> self y-offset))) + ) + (set! (-> self y-vel) (fmin 436.90668 (-> self y-vel))) + (+! (-> self y-offset) (-> self y-vel)) + (when (>= (-> self y-offset) (-> self y-offset-desired)) + (set! (-> self y-offset) (-> self y-offset-desired)) + (set! (-> self y-vel) 0.0) + ) + ) + ) + (+! (-> self root trans y) (-> self y-offset)) + (set! (-> self root trans y) (+ 12288.0 (-> self root trans y))) + (none) + ) + +;; definition for function flying-lurker-rotate +(defbehavior flying-lurker-rotate flying-lurker () + (let ((gp-0 (new 'stack-no-clear 'matrix))) + (let ((s5-0 (new 'stack-no-clear 'matrix))) + (let ((s3-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + ) + (TODO-RENAME-14 (-> self path) (-> self tangent) (-> self curve-position)) + (eval-path-curve! + (-> self path) + s3-0 + (+ (/ 12288.0 (path-distance (-> self path))) (-> self curve-position)) + 'interp + ) + (eval-path-curve! + (-> self path) + s4-0 + (+ (/ 4096.0 (path-distance (-> self path))) (-> self curve-position)) + 'interp + ) + (vector-! s3-0 s3-0 (-> self root trans)) + (vector-! s4-0 s4-0 (-> self root trans)) + (set! (-> s3-0 y) 0.0) + (set! (-> s4-0 y) 0.0) + (vector-normalize! s3-0 1.0) + (vector-normalize! s4-0 1.0) + (vector-cross! s4-0 s4-0 s3-0) + (set! (-> self anim-blend) (asin (-> s4-0 y))) + ) + (set! (-> self anim-blend) (* 0.0010986328 (-> self anim-blend))) + (set! (-> self anim-blend) (fmax -1.0 (fmin 1.0 (-> self anim-blend)))) + (set! (-> self anim-blend) (sin (* 16384.0 (-> self anim-blend)))) + (forward-down->inv-matrix + gp-0 + (-> self tangent) + (new 'static 'vector :y -1.0) + ) + (matrix-rotate-z! s5-0 (* -10922.667 (-> self anim-blend))) + (matrix*! gp-0 s5-0 gp-0) + ) + (matrix->quaternion (-> self root quat) gp-0) + ) + ) + +;; definition for function flying-lurker-calc-anim-speed +(defbehavior flying-lurker-calc-anim-speed flying-lurker () + (let* ((f0-1 (fabs (-> self speed))) + (f0-2 (* 0.07324219 f0-1)) + (f0-3 (+ -15.0 f0-2)) + (f1-3 (* 0.13333334 f0-3)) + ) + (fmin 1.5 (fmax 0.9 f1-3)) + ) + ) + +;; failed to figure out what this is: +(defstate flying-lurker-fly (flying-lurker) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'clone-and-kill-links) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 0) + (set! (-> a1-1 message) 'sleep) + (let ((t9-0 send-event-function) + (v1-3 (-> self link next)) + ) + (t9-0 (if v1-3 + (-> v1-3 extra process) + ) + a1-1 + ) + ) + ) + (go + flying-lurker-clone + (the-as handle (-> arg3 param 0)) + "" + ) + ) + ((= v1-0 'die) + (let ((v1-7 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-7 from) arg0) + (set! (-> v1-7 num-params) arg1) + (set! (-> v1-7 message) arg2) + (set! (-> v1-7 param 0) (-> arg3 param 0)) + (set! (-> v1-7 param 1) (-> arg3 param 1)) + (set! (-> v1-7 param 2) (-> arg3 param 2)) + (set! (-> v1-7 param 3) (-> arg3 param 3)) + (set! (-> v1-7 param 4) (-> arg3 param 4)) + (set! (-> v1-7 param 5) (-> arg3 param 5)) + (set! (-> v1-7 param 6) (-> arg3 param 6)) + (let ((t9-2 send-event-function) + (a1-3 (-> self link next)) + ) + (t9-2 (if a1-3 + (-> a1-3 extra process) + ) + v1-7 + ) + ) + ) + (dummy-18 self) + (deactivate self) + ) + ((= v1-0 'sleep) + (let ((v1-12 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-12 from) arg0) + (set! (-> v1-12 num-params) arg1) + (set! (-> v1-12 message) arg2) + (set! (-> v1-12 param 0) (-> arg3 param 0)) + (set! (-> v1-12 param 1) (-> arg3 param 1)) + (set! (-> v1-12 param 2) (-> arg3 param 2)) + (set! (-> v1-12 param 3) (-> arg3 param 3)) + (set! (-> v1-12 param 4) (-> arg3 param 4)) + (set! (-> v1-12 param 5) (-> arg3 param 5)) + (set! (-> v1-12 param 6) (-> arg3 param 6)) + (let ((t9-5 send-event-function) + (a1-5 (-> self link next)) + ) + (t9-5 (if a1-5 + (-> a1-5 extra process) + ) + v1-12 + ) + ) + ) + (go flying-lurker-sleep) + ) + ((= v1-0 'reset) + (let ((v1-15 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-15 from) arg0) + (set! (-> v1-15 num-params) arg1) + (set! (-> v1-15 message) arg2) + (set! (-> v1-15 param 0) (-> arg3 param 0)) + (set! (-> v1-15 param 1) (-> arg3 param 1)) + (set! (-> v1-15 param 2) (-> arg3 param 2)) + (set! (-> v1-15 param 3) (-> arg3 param 3)) + (set! (-> v1-15 param 4) (-> arg3 param 4)) + (set! (-> v1-15 param 5) (-> arg3 param 5)) + (set! (-> v1-15 param 6) (-> arg3 param 6)) + (let ((t9-7 send-event-function) + (a1-7 (-> self link next)) + ) + (t9-7 (if a1-7 + (-> a1-7 extra process) + ) + v1-15 + ) + ) + ) + (deactivate self) + ) + ) + ) + ) + ) + :enter + (behavior () + (process-entity-status! self (entity-perm-status bit-3) #t) + (set! (-> self draw status) (logand -3 (-> self draw status))) + (none) + ) + :trans + (behavior () + (dummy-20 self) + (when (not (movie?)) + (flying-lurker-calc-speed + (meters 15.0) + (meters 30.0) + (meters 0.11666667) + (meters 0.083333336) + ) + (flying-lurker-move) + (flying-lurker-rotate) + (when + (and + (-> self alt-actor) + (or + (< + (vector-vector-distance-squared + (-> self root trans) + (-> self alt-actor extra trans) + ) + 6710886400.0 + ) + (and + *target* + (< + 4194304000000.0 + (vector-vector-distance-squared (-> self root trans) (target-pos 0)) + ) + ) + ) + ) + (dummy-30 (-> self alt-actor) (entity-perm-status dead) #f) + (entity-birth-no-kill (-> self alt-actor)) + (let ((a1-4 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-4 from) self) + (set! (-> a1-4 num-params) 0) + (set! (-> a1-4 message) 'plunge) + (let ((t9-10 send-event-function) + (v1-13 (-> self alt-actor)) + ) + (t9-10 (if v1-13 + (-> v1-13 extra process) + ) + a1-4 + ) + ) + ) + ) + ) + (none) + ) + :code + (behavior () + (while #t + (when (not (= (if (> (-> self skel active-channels) 0) + (-> self skel root-channel 0 frame-group) + ) + (-> self draw art-group data 5) + ) + ) + (ja-channel-push! 1 60) + (let ((v1-8 (-> self skel root-channel 0))) + (set! + (-> v1-8 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + ) + ) + (let ((gp-0 (-> self skel root-channel 0))) + (set! (-> gp-0 param 0) (flying-lurker-calc-anim-speed)) + (joint-control-channel-group-eval! + gp-0 + (the-as art-joint-anim #f) + num-func-loop! + ) + ) + (suspend) + (when + (>= + (- (-> *display* base-frame-counter) (-> self last-look-time)) + (-> self time-to-next-look) + ) + (ja-channel-push! 1 60) + (let ((a0-12 (-> self skel root-channel 0))) + (set! + (-> a0-12 frame-group) + (the-as art-joint-anim (-> self draw art-group data 6)) + ) + (set! + (-> a0-12 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 6)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-12 param 1) 1.0) + (set! (-> a0-12 frame-num) 0.0) + (joint-control-channel-group! + a0-12 + (the-as art-joint-anim (-> self draw art-group data 6)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (suspend) + (let ((a0-13 (-> self skel root-channel 0))) + (set! + (-> a0-13 param 0) + (the float (+ (-> a0-13 frame-group data 0 length) -1)) + ) + (set! (-> a0-13 param 1) 1.0) + (joint-control-channel-group-eval! + a0-13 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (set! (-> self last-look-time) (-> *display* base-frame-counter)) + (let* ((f30-0 300.0) + (f28-0 3.0) + (f26-0 5.0) + (v1-41 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-42 (the-as float (logior #x3f800000 v1-41))) + ) + (set! + (-> self time-to-next-look) + (the int (* f30-0 (+ f28-0 (* f26-0 (+ -1.0 v1-42))))) + ) + ) + ) + ) + (none) + ) + :post + (the-as (function none :behavior flying-lurker) ja-post) + ) + +;; definition for function flying-lurker-handler +;; INFO: Return type mismatch none vs object. +(defbehavior + flying-lurker-handler flying-lurker + ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (when (= v1-0 'fly-away) + (when (-> self link next) + (entity-birth-no-kill (-> self link next)) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 2) + (set! (-> a1-1 message) 'fly-away) + (set! + (-> a1-1 param 0) + (the-as uint (/ (the-as int (-> arg3 param 0)) 16)) + ) + (set! (-> a1-1 param 1) (-> arg3 param 1)) + (let ((t9-1 send-event-function) + (v1-11 (-> self link next)) + ) + (t9-1 (if v1-11 + (-> v1-11 extra process) + ) + a1-1 + ) + ) + ) + ) + (let* ((v1-14 (-> arg3 param 0)) + (a0-4 (-> arg3 param 1)) + (v1-15 (logand v1-14 3)) + ) + (set! (-> self rank) (the-as int v1-15)) + (cond + ((< 15 (the-as int a0-4)) + (cond + ((zero? v1-15) + (set! (-> self race-seconds) 33000.0) + ) + ((= v1-15 1) + (set! (-> self race-seconds) 34500.0) + ) + (else + (set! (-> self race-seconds) 36000.0) + ) + ) + ) + ((< 10 (the-as int a0-4)) + (cond + ((zero? v1-15) + (set! (-> self race-seconds) 31800.0) + ) + ((= v1-15 1) + (set! (-> self race-seconds) 33300.0) + ) + (else + (set! (-> self race-seconds) 34800.0) + ) + ) + ) + ((< 5 (the-as int a0-4)) + (cond + ((zero? v1-15) + (set! (-> self race-seconds) 30600.0) + ) + ((= v1-15 1) + (set! (-> self race-seconds) 32100.0) + ) + (else + (set! (-> self race-seconds) 33600.0) + ) + ) + ) + ((zero? v1-15) + (set! (-> self race-seconds) 30000.0) + ) + ((= v1-15 1) + (set! (-> self race-seconds) 31500.0) + ) + (else + (set! (-> self race-seconds) 33000.0) + ) + ) + ) + (logclear! (-> self mask) (process-mask actor-pause)) + (set! + (-> self race-start-time) + (-> *display* game-frame-counter) + ) + (go flying-lurker-fly) + ) + ) + ) + ) + +;; definition for function flying-lurker-play-intro +;; INFO: Return type mismatch (pointer process) vs none. +(defbehavior flying-lurker-play-intro flying-lurker () + (logclear! (-> self mask) (process-mask actor-pause)) + (close-specific-task! (game-task plunger-lurker-hit) (task-status unknown)) + (while + (and + *target* + (logtest? (-> *target* control unknown-surface00 flags) 2048) + (zero? (logand (-> *target* control status) 1)) + ) + (suspend) + ) + (while (not (process-grab? *target*)) + (suspend) + ) + (kill-current-level-hint '(notice) '() 'exit) + (while + (or + (-> *setting-control* current talking) + (-> *setting-control* current spooling) + (-> *setting-control* current hint) + (!= (-> *level* loading-level) (-> *level* level-default)) + ) + (suspend) + ) + (suspend) + (kill-current-level-hint '() '() 'die) + (suspend) + (let* ((gp-0 (get-process *default-dead-pool* manipy #x4000)) + (gp-1 (ppointer->handle (when gp-0 + (let ((t9-5 (method-of-type manipy activate))) + (t9-5 + (the-as manipy gp-0) + self + 'manipy + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + gp-0 + manipy-init + (-> self entity extra trans) + (-> self entity) + *ogrecam-sg* + #f + ) + (-> gp-0 ppointer) + ) + ) + ) + ) + (let + ((s5-0 (the-as othercam (get-process *default-dead-pool* othercam #x4000)))) + (ppointer->handle (when s5-0 + (let ((t9-8 (method-of-type othercam activate))) + (t9-8 + s5-0 + (-> gp-1 process 0) + 'othercam + (the-as pointer #x70004000) + ) + ) + (run-now-in-process + s5-0 + othercam-init-by-other + (-> gp-1 process 0) + 4 + #f + #t + ) + (-> s5-0 ppointer) + ) + ) + ) + (let ((a1-9 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-9 from) self) + (set! (-> a1-9 num-params) 1) + (set! (-> a1-9 message) 'eval) + (set! + (-> a1-9 param 0) + (the-as + uint + (lambda :behavior manipy + () + (let ((v0-0 (logior (-> self draw status) 32))) + (set! (-> self draw status) v0-0) + v0-0 + ) + ) + ) + ) + (send-event-function (handle->process gp-1) a1-9) + ) + (let ((a1-10 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-10 from) self) + (set! (-> a1-10 num-params) 1) + (set! (-> a1-10 message) 'clone-copy-trans) + (set! (-> a1-10 param 0) (the-as uint #f)) + (send-event-function (-> gp-1 process 0) a1-10) + ) + (let ((a1-11 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-11 from) self) + (set! (-> a1-11 num-params) 1) + (set! (-> a1-11 message) 'anim-mode) + (set! (-> a1-11 param 0) (the-as uint 'clone-anim)) + (send-event-function (-> gp-1 process 0) a1-11) + ) + (let ((a1-12 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-12 from) self) + (set! (-> a1-12 num-params) 2) + (set! (-> a1-12 message) 'clone) + (set! (-> a1-12 param 0) (the-as uint (process->handle self))) + (set! (-> a1-12 param 1) (the-as uint 2)) + (let ((t9-13 send-event-function) + (v1-58 (-> self link next)) + ) + (t9-13 (if v1-58 + (-> v1-58 extra process) + ) + a1-12 + ) + ) + ) + (ja-play-spooled-anim + (new 'static 'spool-anim + :name "flying-lurker-intro" + :index 7 + :parts 2 + :command-list '() + ) + (the-as art-joint-anim #f) + (the-as art-joint-anim #f) + (the-as (function process-drawable symbol) false-func) + ) + (if (handle->process gp-1) + (deactivate (-> gp-1 process 0)) + ) + ) + (process-release? *target*) + (let ((gp-2 (get-process *default-dead-pool* process #x4000))) + (when gp-2 + (let ((t9-18 (method-of-type process activate))) + (t9-18 gp-2 self 'process (the-as pointer #x70004000)) + ) + (run-next-time-in-process + gp-2 + (lambda :behavior process + () + (let ((gp-0 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) gp-0) 30) + (suspend) + ) + ) + (level-hint-spawn + (game-text-id assistant-voicebox-intro-ogre-race) + "asstvb24" + (the-as entity #f) + *entity-pool* + (game-task none) + ) + (none) + ) + ) + (-> gp-2 ppointer) + ) + ) + (none) + ) + +;; failed to figure out what this is: +(defstate flying-lurker-start (flying-lurker) + :event + flying-lurker-handler + :exit + (behavior () + (clear-pending-settings-from-process *setting-control* self 'allow-progress) + (none) + ) + :code + (behavior () + (when (play-movie?) + (set-setting! *setting-control* self 'allow-progress #f 0.0 0) + (flying-lurker-play-intro) + ) + (flying-lurker-inc-try-count) + (ja-channel-set! 1) + (let ((v1-6 (-> self skel root-channel 0))) + (set! + (-> v1-6 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + ) + (let* ((v1-8 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-9 (the-as float (logior #x3f800000 v1-8))) + (f0-2 (+ -1.0 v1-9)) + ) + (cond + ((< 0.8333333 f0-2) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 2) + (set! (-> a1-1 message) 'fly-away) + (set! (-> a1-1 param 0) (the-as uint 18)) + (set! (-> a1-1 param 1) (-> self try-count)) + (send-event-function self a1-1) + ) + ) + ((< 0.6666667 f0-2) + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) self) + (set! (-> a1-2 num-params) 2) + (set! (-> a1-2 message) 'fly-away) + (set! (-> a1-2 param 0) (the-as uint 33)) + (set! (-> a1-2 param 1) (-> self try-count)) + (send-event-function self a1-2) + ) + ) + ((< 0.5 f0-2) + (let ((a1-3 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-3 from) self) + (set! (-> a1-3 num-params) 2) + (set! (-> a1-3 message) 'fly-away) + (set! (-> a1-3 param 0) (the-as uint 258)) + (set! (-> a1-3 param 1) (-> self try-count)) + (send-event-function self a1-3) + ) + ) + ((< 0.33333334 f0-2) + (let ((a1-4 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-4 from) self) + (set! (-> a1-4 num-params) 2) + (set! (-> a1-4 message) 'fly-away) + (set! (-> a1-4 param 0) (the-as uint 288)) + (set! (-> a1-4 param 1) (-> self try-count)) + (send-event-function self a1-4) + ) + ) + ((< 0.16666667 f0-2) + (let ((a1-5 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-5 from) self) + (set! (-> a1-5 num-params) 2) + (set! (-> a1-5 message) 'fly-away) + (set! (-> a1-5 param 0) (the-as uint 513)) + (set! (-> a1-5 param 1) (-> self try-count)) + (send-event-function self a1-5) + ) + ) + (else + (let ((a1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-6 from) self) + (set! (-> a1-6 num-params) 2) + (set! (-> a1-6 message) 'fly-away) + (set! (-> a1-6 param 0) (the-as uint 528)) + (set! (-> a1-6 param 1) (-> self try-count)) + (send-event-function self a1-6) + ) + ) + ) + ) + (none) + ) + :post + (the-as (function none :behavior flying-lurker) ja-post) + ) + +;; failed to figure out what this is: +(defstate flying-lurker-clone (flying-lurker) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'die) + (let ((v1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-1 from) arg0) + (set! (-> v1-1 num-params) arg1) + (set! (-> v1-1 message) arg2) + (set! (-> v1-1 param 0) (-> arg3 param 0)) + (set! (-> v1-1 param 1) (-> arg3 param 1)) + (set! (-> v1-1 param 2) (-> arg3 param 2)) + (set! (-> v1-1 param 3) (-> arg3 param 3)) + (set! (-> v1-1 param 4) (-> arg3 param 4)) + (set! (-> v1-1 param 5) (-> arg3 param 5)) + (set! (-> v1-1 param 6) (-> arg3 param 6)) + (let ((t9-0 send-event-function) + (a1-1 (-> self link next)) + ) + (t9-0 (if a1-1 + (-> a1-1 extra process) + ) + v1-1 + ) + ) + ) + (dummy-18 self) + (deactivate self) + ) + ((= v1-0 'sleep) + (let ((v1-6 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-6 from) arg0) + (set! (-> v1-6 num-params) arg1) + (set! (-> v1-6 message) arg2) + (set! (-> v1-6 param 0) (-> arg3 param 0)) + (set! (-> v1-6 param 1) (-> arg3 param 1)) + (set! (-> v1-6 param 2) (-> arg3 param 2)) + (set! (-> v1-6 param 3) (-> arg3 param 3)) + (set! (-> v1-6 param 4) (-> arg3 param 4)) + (set! (-> v1-6 param 5) (-> arg3 param 5)) + (set! (-> v1-6 param 6) (-> arg3 param 6)) + (let ((t9-3 send-event-function) + (a1-3 (-> self link next)) + ) + (t9-3 (if a1-3 + (-> a1-3 extra process) + ) + v1-6 + ) + ) + ) + (go flying-lurker-sleep) + ) + ((= v1-0 'reset) + (let ((v1-9 (new 'stack-no-clear 'event-message-block))) + (set! (-> v1-9 from) arg0) + (set! (-> v1-9 num-params) arg1) + (set! (-> v1-9 message) arg2) + (set! (-> v1-9 param 0) (-> arg3 param 0)) + (set! (-> v1-9 param 1) (-> arg3 param 1)) + (set! (-> v1-9 param 2) (-> arg3 param 2)) + (set! (-> v1-9 param 3) (-> arg3 param 3)) + (set! (-> v1-9 param 4) (-> arg3 param 4)) + (set! (-> v1-9 param 5) (-> arg3 param 5)) + (set! (-> v1-9 param 6) (-> arg3 param 6)) + (let ((t9-5 send-event-function) + (a1-5 (-> self link next)) + ) + (t9-5 (if a1-5 + (-> a1-5 extra process) + ) + v1-9 + ) + ) + ) + (deactivate self) + ) + (else + (flying-lurker-handler arg0 arg1 arg2 arg3) + ) + ) + ) + ) + ) + :exit + (behavior () + (ja-channel-set! 0) + (none) + ) + :code + (behavior ((arg0 handle) (arg1 string)) + (clone-anim arg0 3 #t arg1) + (none) + ) + ) + +;; failed to figure out what this is: +(defstate flying-lurker-idle (flying-lurker) + :event + (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (let ((v1-0 arg2)) + (the-as object (cond + ((= v1-0 'saw-player) + (set! (-> self take-off) #t) + (when (-> self link prev) + (entity-birth-no-kill (-> self link prev)) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) arg0) + (set! (-> a1-1 num-params) arg1) + (set! (-> a1-1 message) arg2) + (set! (-> a1-1 param 0) (-> arg3 param 0)) + (set! (-> a1-1 param 1) (-> arg3 param 1)) + (set! (-> a1-1 param 2) (-> arg3 param 2)) + (set! (-> a1-1 param 3) (-> arg3 param 3)) + (set! (-> a1-1 param 4) (-> arg3 param 4)) + (set! (-> a1-1 param 5) (-> arg3 param 5)) + (set! (-> a1-1 param 6) (-> arg3 param 6)) + (let ((t9-1 send-event-function) + (v1-13 (-> self link prev)) + ) + (t9-1 (if v1-13 + (-> v1-13 extra process) + ) + a1-1 + ) + ) + ) + ) + ) + ((= v1-0 'clone) + (when (-> self link next) + (entity-birth-no-kill (-> self link next)) + (let ((a1-2 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-2 from) self) + (set! (-> a1-2 num-params) 2) + (set! (-> a1-2 message) 'clone) + (set! (-> a1-2 param 0) (-> arg3 param 0)) + (set! (-> a1-2 param 1) (+ (-> arg3 param 1) -1)) + (let ((t9-3 send-event-function) + (v1-25 (-> self link next)) + ) + (t9-3 (if v1-25 + (-> v1-25 extra process) + ) + a1-2 + ) + ) + ) + ) + (case (-> arg3 param 1) + ((2) + (go + flying-lurker-clone + (the-as handle (-> arg3 param 0)) + "flying-lurker-b-" + ) + ) + ((1) + (go + flying-lurker-clone + (the-as handle (-> arg3 param 0)) + "flying-lurker-c-" + ) + ) + ) + ) + (else + (flying-lurker-handler arg0 arg1 arg2 arg3) + ) + ) + ) + ) + ) + :exit + (behavior () + (set! (-> self draw status) (logand -3 (-> self draw status))) + (none) + ) + :trans + (behavior () + (spool-push *art-control* "flying-lurker-intro" 0 self -99.0) + (if (and (-> self take-off) (first?)) + (go flying-lurker-start) + ) + (none) + ) + :code + (behavior () + (local-vars (gp-0 int) (f30-0 float)) + 1.0 + 0 + (cond + ((not (-> self link next)) + (set! f30-0 0.9) + (set! gp-0 0) + ) + ((not (-> self link prev)) + (set! f30-0 1.0) + (set! gp-0 5) + ) + (else + (set! f30-0 1.2) + (set! gp-0 11) + ) + ) + (while #t + (cond + ((play-movie?) + (ja-channel-set! 0) + (if + (= + (get-task-status (game-task plunger-lurker-hit)) + (task-status invalid) + ) + (go flying-lurker-die) + ) + (when + (and + *target* + (>= + 172032.0 + (vector-vector-xz-distance + (-> self root trans) + (-> *target* control trans) + ) + ) + ) + (process-grab? *target*) + (let ((s5-0 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) s5-0) 300) + (suspend) + ) + ) + (process-release? *target*) + (let ((a1-1 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-1 from) self) + (set! (-> a1-1 num-params) 0) + (set! (-> a1-1 message) 'saw-player) + (send-event-function self a1-1) + ) + ) + (suspend) + 0 + ) + (else + (let ((v1-27 (-> self skel root-channel 0))) + (set! + (-> v1-27 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + ) + (let ((a0-9 (-> self skel root-channel 0))) + (set! + (-> a0-9 frame-group) + (the-as art-joint-anim (-> self draw art-group data 5)) + ) + (set! + (-> a0-9 param 0) + (the + float + (+ + (-> + (the-as art-joint-anim (-> self draw art-group data 5)) + data + 0 + length + ) + -1 + ) + ) + ) + (set! (-> a0-9 param 1) f30-0) + (set! (-> a0-9 frame-num) (the float gp-0)) + (joint-control-channel-group! + a0-9 + (the-as art-joint-anim (-> self draw art-group data 5)) + num-func-seek! + ) + ) + (until (ja-done? 0) + (when + (and + *target* + (>= + 172032.0 + (vector-vector-xz-distance + (-> self root trans) + (-> *target* control trans) + ) + ) + ) + (let ((a1-4 (new 'stack-no-clear 'event-message-block))) + (set! (-> a1-4 from) self) + (set! (-> a1-4 num-params) 0) + (set! (-> a1-4 message) 'saw-player) + (send-event-function self a1-4) + ) + ) + (suspend) + (let ((a0-12 (-> self skel root-channel 0))) + (set! + (-> a0-12 param 0) + (the float (+ (-> a0-12 frame-group data 0 length) -1)) + ) + (set! (-> a0-12 param 1) f30-0) + (joint-control-channel-group-eval! + a0-12 + (the-as art-joint-anim #f) + num-func-seek! + ) + ) + ) + (set! gp-0 0) + ) + ) + ) + (none) + ) + :post + (the-as (function none :behavior flying-lurker) ja-post) + ) + +;; definition for method 11 of type flying-lurker +;; Used lq/sq +(defmethod copy-defaults! flying-lurker ((obj flying-lurker) (arg0 res-lump)) + (stack-size-set! (-> obj main-thread) 512) + (set! (-> obj root) (new 'process 'trsqv)) + (process-drawable-from-entity! obj arg0) + (dummy-14 obj *flying-lurker-sg* '()) + (set! (-> obj link) (new 'process 'actor-link-info obj)) + (set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0)) + (logior! + (-> obj path flags) + (path-control-flag display draw-line draw-point draw-text) + ) + (set! (-> obj root pause-adjust-distance) 122880.0) + (set! (-> obj curve-position) 0.0) + (cond + ((play-movie?) + (eval-path-curve! + (-> obj path) + (-> obj root trans) + (-> obj curve-position) + 'interp + ) + (TODO-RENAME-14 (-> obj path) (-> obj tangent) (-> obj curve-position)) + (quaternion-identity! (-> obj root quat)) + ) + (else + (flying-lurker-move) + (flying-lurker-rotate) + ) + ) + (set! (-> obj y-offset) 0.0) + (set! (-> obj y-vel) 0.0) + (set! (-> obj last-look-time) 0) + (set! (-> obj time-to-next-look) 0) + (set! (-> obj draw origin-joint-index) (the-as uint 4)) + (set! (-> obj draw shadow-joint-index) (the-as uint 4)) + (set! (-> obj take-off) #f) + (set-vector! (-> obj default-bounds) 0.0 8192.0 0.0 24576.0) + (set! (-> obj draw bounds quad) (-> obj default-bounds quad)) + (set! + (-> obj draw shadow-ctrl) + (new + 'process + 'shadow-control + 131072.0 + 151552.0 + 614400.0 + (the-as float 60) + 409600.0 + ) + ) + (let ((v1-27 (-> obj draw shadow-ctrl))) + (set! (-> v1-27 settings flags) (logand -33 (-> v1-27 settings flags))) + ) + 0 + (set! (-> obj alt-actor) (entity-actor-lookup arg0 'alt-actor 0)) + (set! (-> obj shadow-backup) (-> obj draw shadow)) + (set! (-> obj try-counted) #f) + (if (= (get-task-status (game-task plunger-lurker-hit)) (task-status invalid)) + (go flying-lurker-die) + (go flying-lurker-idle) + ) + (none) + ) diff --git a/test/offline/offline_test_main.cpp b/test/offline/offline_test_main.cpp index c554459709..62a8595157 100644 --- a/test/offline/offline_test_main.cpp +++ b/test/offline/offline_test_main.cpp @@ -67,16 +67,6 @@ const std::unordered_set g_functions_expected_to_reject = { // ripple - asm "ripple-execute-init", "ripple-create-wave-table", "ripple-apply-wave-table", "ripple-matrix-scale", - // ripple - calls an asm function - "ripple-execute", - - // sync-info - "(method 15 sync-info)", // needs *res-static-buf* - "(method 15 sync-info-eased)", // needs *res-static-buf* - "(method 15 sync-info-paused)", // needs *res-static-buf* - - // camera - "slave-set-rotation!", "v-slrp2!", "v-slrp3!", // vector-dot involving the stack // collide-mesh-h "(method 11 collide-mesh-cache)", // asm @@ -85,7 +75,8 @@ const std::unordered_set g_functions_expected_to_reject = { "update-mood-lava", // asm "update-mood-lightning", // asm - "debug-menu-item-var-render" // asm + // ambient + "ambient-inspect" // asm, weird }; const std::unordered_set g_functions_to_skip_compiling = { @@ -172,7 +163,10 @@ const std::unordered_set g_functions_to_skip_compiling = { "slave-set-rotation!", "v-slrp2!", "v-slrp3!", // vector-dot involving the stack // function returning float with a weird cast. - "debug-menu-item-var-make-float"}; + "debug-menu-item-var-make-float", + + // decompiler BUG + "level-hint-task-process"}; // default location for the data. It can be changed with a command line argument. std::string g_iso_data_path = ""; @@ -187,10 +181,10 @@ struct decomp_meta { std::vector g_object_files_to_decompile_or_ref_check; -std::vector dgos = {"CGO/KERNEL.CGO", "CGO/ENGINE.CGO", "CGO/GAME.CGO", "DGO/BEA.DGO", - "DGO/INT.DGO", "DGO/VI1.DGO", "DGO/VI2.DGO", "DGO/VI3.DGO", - "DGO/CIT.DGO", "DGO/MIS.DGO", "DGO/JUB.DGO", "DGO/SUN.DGO", - "DGO/DEM.DGO", "DGO/FIN.DGO", "DGO/JUN.DGO", "DGO/FIC.DGO"}; +std::vector dgos = { + "CGO/KERNEL.CGO", "CGO/ENGINE.CGO", "CGO/GAME.CGO", "DGO/BEA.DGO", "DGO/INT.DGO", "DGO/VI1.DGO", + "DGO/VI2.DGO", "DGO/VI3.DGO", "DGO/CIT.DGO", "DGO/MIS.DGO", "DGO/JUB.DGO", "DGO/SUN.DGO", + "DGO/DEM.DGO", "DGO/FIN.DGO", "DGO/JUN.DGO", "DGO/FIC.DGO", "DGO/OGR.DGO"}; } // namespace